意想不到的令牌''在选择表达式的第3位

时间:2017-03-09 09:44:35

标签: c# .net jenkins opencover

我正在Jenkins Job中执行批处理脚本。

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

我也使用了Filter,但没有用。

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.

1 个答案:

答案 0 :(得分: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而不是批处理文件

以下是示例脚本:https://github.com/rpokrovskij/opencover4vs.ps1

将它放到解决方案文件夹中,修改第一行,我希望它能为您工作,而无需进行其他更改。