如果我正确理解您的问题,您想将一些命令行参数传递给 Xunit。但是当您运行 dotnet test 时,它实际上会将参数应用于 dotnet 命令。
您可以改用configuration files 来打开并行化和其他功能。
xunit.config.json
{
"parallelizeAssembly": true
}
您确实提到的参数(例如--parallel)确实存在,但在dotnet 上下文中不存在。您可以使用 console runner 手动运行 Xunit。它作为 xunit repo 的一部分存在于 NuGet 和 GitHub 中。
这是它的输出:
$ .\xunit.console.exe
xUnit.net Console Runner v2.4.1 (64-bit Desktop .NET 4.6.1, runtime: 4.0.30319.42000)
Copyright (C) .NET Foundation.
usage: xunit.console <assemblyFile> [configFile] [assemblyFile [configFile]...] [options] [reporter] [resultFormat filename [...]]
Note: Configuration files must end in .json (for JSON) or .config (for XML)
Valid options:
-nologo : do not show the copyright message
-nocolor : do not output results with colors
-failskips : convert skipped tests into failures
-stoponfail : stop on first test failure
-parallel option : set parallelization based on option
: none - turn off all parallelization
: collections - only parallelize collections
: assemblies - only parallelize assemblies
: all - parallelize assemblies & collections
-maxthreads count : maximum thread count for collection parallelization
: default - run with default (1 thread per CPU thread)
: unlimited - run with unbounded thread count
: (number) - limit task thread pool size to 'count'
-appdomains mode : choose an app domain mode
: ifavailable - choose based on library type
: required - force app domains on
: denied - force app domains off
-noshadow : do not shadow copy assemblies
-wait : wait for input after completion
-diagnostics : enable diagnostics messages for all test assemblies
-internaldiagnostics : enable internal diagnostics messages for all test assemblies
-debug : launch the debugger to debug the tests
-serialize : serialize all test cases (for diagnostic purposes only)
-trait "name=value" : only run tests with matching name/value traits
: if specified more than once, acts as an OR operation
-notrait "name=value" : do not run tests with matching name/value traits
: if specified more than once, acts as an AND operation
-method "name" : run a given test method (can be fully specified or use a wildcard;
: i.e., 'MyNamespace.MyClass.MyTestMethod' or '*.MyTestMethod')
: if specified more than once, acts as an OR operation
-nomethod "name" : do not run a given test method (can be fully specified or use a wildcard;
: i.e., 'MyNamespace.MyClass.MyTestMethod' or '*.MyTestMethod')
: if specified more than once, acts as an AND operation
-class "name" : run all methods in a given test class (should be fully
: specified; i.e., 'MyNamespace.MyClass')
: if specified more than once, acts as an OR operation
-noclass "name" : do not run any methods in a given test class (should be fully
: specified; i.e., 'MyNamespace.MyClass')
: if specified more than once, acts as an AND operation
-namespace "name" : run all methods in a given namespace (i.e.,
: 'MyNamespace.MySubNamespace')
: if specified more than once, acts as an OR operation
-nonamespace "name" : do not run any methods in a given namespace (i.e.,
: 'MyNamespace.MySubNamespace')
: if specified more than once, acts as an AND operation
-noautoreporters : do not allow reporters to be auto-enabled by environment
: (for example, auto-detecting TeamCity or AppVeyor)
Reporters: (optional, choose only one)
-appveyor : forces AppVeyor CI mode (normally auto-detected)
-json : show progress messages in JSON format
-quiet : do not show progress messages
-teamcity : forces TeamCity mode (normally auto-detected)
-verbose : show verbose progress messages
-vsts : forces VSTS CI mode (normally auto-detected)
Result formats: (optional, choose one or more)
-xml <filename> : output results to xUnit.net v2 XML file
-xmlv1 <filename> : output results to xUnit.net v1 XML file
-html <filename> : output results to HTML file
-nunit <filename> : output results to NUnit v2.5 XML file
-junit <filename> : output results to JUnit XML file