如何在Commandline中运行xUnit测试DLL而不构建项目

Mey*_*sam 14 unit-testing xunit xunit.net .net-core

我在.NET Core中有一个项目,并使用xUnit构建了测试.现在我想在部署过程中运行测试.到目前为止我做了什么:

我在命令行中使用了这个命令:

dotnet test [project address]  ... 
Run Code Online (Sandbox Code Playgroud)

它正在工作但问题是这个命令获取.csproj文件而不是dll.

我安装并使用xunit.runner.console但不能使用.NET Core项目.

我使用dotnet xunit命令,这个也没有帮助,而我不能给它dll它也使用项目文件夹.

我可以使用什么来运行我的构建测试(不想再次构建它们),任何命令行工具,我可以将我的测试dll作为输入,并为我运行测试.

Ily*_*kov 24

你有几个选择:

1.使用vstest命令

dotnet vstest Foo.dll
Run Code Online (Sandbox Code Playgroud)

从a运行测试dll.支持xUnit测试.文档.

dll仅使用单个文件是不够的.dotnet vstest从您的bin文件夹运行,该文件夹通常包含:

Foo.dll
Foo.deps.json
Foo.runtimeconfig.json
Foo.runtimeconfig.dev.json
Microsoft.Extensions.Logging.Test.dll
xunit.runner.reporters.netstandard15.dll
xunit.runner.utility.netstandard15.dll
xunit.runner.visualstudio.dotnetcore.testadapter.dll
Run Code Online (Sandbox Code Playgroud)

bin输出是运行测试所必需的.

2.在测试运行时跳过项目构建

dotnet test --no-build
Run Code Online (Sandbox Code Playgroud)

  • vstest工作正常且顺利。感谢您的回答,对您有所帮助。 (2认同)
  • 对于近年来查看此内容的人来说,vstest 已再次被 dotnet test 取代:“dotnet vstest 命令被 dotnet test 取代,现在可用于运行程序集” (2认同)