2017-03-09 62 views
0

我在Jenkins作業中執行批處理腳本。選擇表達式中位置3的意外標記''

C:\Users\Administrator\AppData\Local\Apps\OpenCover\OpenCover.Console.exe "-target:C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "-targetargs:C:\Test\src\Example.Tests\bin\Debug\example.Tests.dll --where "cat == Unit" -register:Administrator 

我用過濾器,但沒用。

C:\Users\Administrator\AppData\Local\Apps\OpenCover\OpenCover.Console.exe "-target:C:\Program Files (x86)\NUnit.org\nunit-console\nunit3-console.exe" "-targetargs:C:\Test\src\Example.Tests\bin\Debug\example.Tests.dl -filter:"+[Unit]*" -register:Administrator 

該批處理命令有一個where條件( - where「cat == Unit」)。當我執行這個時,我得到了錯誤。

測試文件

C:\Test\src\Example.Tests\bin\Debug\example.Tests.dll 
    == 
    Unit 

Test Filters 
    Where: cat 

Unexpected token '' at position 3 in selection expression. 
Committing... 
No results, this could be for a number of reasons. The most common reasons are: 
    1) missing PDBs for the assemblies that match the filter please review the 
    output file and refer to the Usage guide (Usage.rtf) about filters. 
    2) the profiler may not be registered correctly, please refer to the Usage 
    guide and the -register switch. 

由於此錯誤,我無法獲取代碼覆蓋率。請建議。我在下面找到鏈接,但我無法完成此操作。

https://github.com/codecov/example-csharp 

更新的錯誤日誌。

Incorrect Arguments: The argument 'cat == Unit' is not recognised 

Usage: 
    ["]-target:<target application>["] 
    [["]-targetdir:<target directory>["]] 
    [["]-searchdirs:<additional PDB directory>[;<additional PDB directory>][;<additional PDB directory>]["]] 
    [["]-targetargs:<arguments for the target process>["]] 
    [-register[:user]] 
    [["]-output:<path to file>["]] 
    [-mergeoutput 
    [["]-filter:<space separated filters>["]] 
    [["]-filterfile:<path to file>["]] 
    [-nodefaultfilters] 
    [-regex] 
    [-mergebyhash] 
    [-showunvisited] 
    [-returntargetcode[:<opencoverreturncodeoffset>]] 
    [-excludebyattribute:<filter>[;<filter>][;<filter>]] 
    [-excludebyfile:<filter>[;<filter>][;<filter>]] 
    [-coverbytest:<filter>[;<filter>][;<filter>]] 
    [["]-excludedirs:<excludedir>[;<excludedir>][;<excludedir>]["]] 
    [-hideskipped:File|Filter|Attribute|MissingPdb|All,[File|Filter|Attribute|MissingPdb|All]] 
    [-log:[Off|Fatal|Error|Warn|Info|Debug|Verbose|All]] 
    [-service[:byname]] 
    [-servicestarttimeout:<minutes+seconds e.g. 1m23s> 
    [-communicationtimeout:<integer, e.g. 10000> 
    [-threshold:<max count>] 
    [-enableperformancecounters] 
    [-skipautoprops] 
    [-oldStyle] 
or 
    -? 
or 
    -version 

For further information on the command line please visit the wiki 
    https://github.com/OpenCover/opencover/wiki/Usage 

Filters: 
    Filters are used to include and exclude assemblies and types in the 
    profiler coverage; see the Usage guide. If no other filters are supplied 
    via the -filter option then a default inclusive all filter +[*]* is 
    applied. 
Logging: 
    Logging is based on log4net logging levels and appenders - defaulting 
    to a ColouredConsoleAppender and INFO log level. 
Notes: 
    Enclose arguments in quotes "" when spaces are required see -targetargs. 
+0

您是否需要'example.Tests.dll'後的報價? –

+0

引用dll後沒有工作 –

回答

2

這看起來像廢話

"-targetargs:C:\Test\src\Example.Tests\bin\Debug\example.Tests.dl -filter:"+[Unit]*" 

像這樣的東西應該更好地工作

"-targetargs:C:\Test\src\Example.Tests\bin\Debug\example.Tests.dll" -filter:"+[*Unit]*" 

我建議你去嘗試的批處理文件的PowerShell intstead

下面是示例腳本:https://github.com/rpokrovskij/opencover4vs.ps1

把它放到解決方案文件夾中,修改第一行,我希望它可以爲你工作,而無需額外的更改。