Unexpected token '' at position 3 in selec

2019-07-25 21:36发布

I am executing a batch script in 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

I used Filter as well but no use.

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

This batch command has a where condition (--where "cat == Unit"). When I execute this I am getting below error.

Test Files

  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.

Because of this error I am not able to get Code Coverage. Please suggest.I found below link but I am unable to get this done.

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

updated error Logs.

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条回答
Animai°情兽
2楼-- · 2019-07-25 21:50

This looks like nonsense

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

Something like this should work better

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

I recommend you to try powershell intstead of batch files

Here is the sample script: https://github.com/rpokrovskij/opencover4vs.ps1

Put it to solution folder, modify first line , and I hope it will work for you, without additional changes.

查看更多
登录 后发表回答