Dotnet CLI构建和测试 - 只需运行测试

时间:2017-12-04 11:50:22

标签: visual-studio tfs command-line-interface xunit

**\*test*.dll

我想在dotnet cli上使用这个架构,但我无法找到dotnet测试文档。我的项目文件结构就是这样this

目前测试它查看.sln文件下的所有.dll文件。但我想看看tests.dll文件

dotnet test --no-build "**\*test*.dll" //?? All files in my project 

3 个答案:

答案 0 :(得分:1)

对于dotnet测试,没有这样的模式可以过滤,我们只能通过 DisplayName FullyQualifiedName 过滤xUnit的测试,请参阅此链接以获取详细信息: https://github.com/Microsoft/vstest-docs/blob/master/docs/filter.md

但它只能过滤测试,它不能排除其他非测试项目.dll。

e.g。

dotnet test --filter "FullyQualifiedName=YourNamespace.TestClass1.Test1"

但是,您可以尝试编写PowerShell脚本来过滤测试项目并在循环中运行命令。参考:Dotnet CLI – running tests from multiple assemblies

e.g。

Get-ChildItem | ? { $_.Name.Contains("Test") } | ForEach-Object { Push-Location; Set-Location $_.Name; dotnet test --no-build; Pop-Location}

此线程也供您参考:https://github.com/Microsoft/vstest/issues/705

另一种解决方法是编写 cmd / bat 脚本以仅运行测试项目:

e.g。

cd C:\TestProjectPath\A.Tests

dotnet test --no-build

cd C:\TestProjectPath\B.Tests

dotnet test --no-build

cd C:\TestProjectPath\C.Tests

dotnet test --no-build

答案 1 :(得分:0)

通过使用带有通配符的正则表达式的dotnet vstest,无需任何脚本即可达到相同的目的。

例如:

dotnet build --configuration Release
dotnet vstest ./**/*Tests/bin/Release/**/*Tests.dll

第一个命令将使用dll生成Release文件夹。第二个将运行找到与模式匹配的所有测试dll。

这与xUnit框架一起很好地工作。不确定其他框架。

答案 2 :(得分:0)

在项目路径中输入** / * Test.csproj,这样它将仅运行测试Test项目。