gpt4 book ai didi

c# - 如何使用 "dotnet test"按类别过滤 NUnit 测试

转载 作者:太空狗 更新时间:2023-10-29 17:51:31 26 4
gpt4 key购买 nike

我有一个项目有一个

[TestFixture, Category("Oracle")]

和一个

[TestFixture, Category("OracleOdbc")]

我想使用dotnet test单独执行一些测试。

这是我在谷歌搜索后尝试的结果:

  1. dotnet test MyProject.csproj --where "cat==Oracle" 但此开关不再存在。
  2. dotnet test MyProject.csproj --filter Category="Oracle" 产生 0 个适用的测试:No test is available in ...

然后,我偶然发现了this article虽然它描述了 MSTest(并且 NUnit 具有 CategoryAttribute 而不是 TestCategoryAttribute),但我已经尝试过

  1. dotnet test MyProject.csproj --filter TestCategory="Oracle"

宾果游戏。这次执行了所有“Oracle”测试。但现在是令人困惑的部分。如果我运行 dotnet test MyProject.csproj --filter TestCategory="OracleOdbc",将执行所有 测试,包括“Oracle”” OracleOdbc”。这让我想知道 TestCategroy 是否是 NUnit 的正确方法,或者这是否是一个错误。

我正在使用 .NET 命令行工具 (2.1.2),项目引用是:

<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="NUnit" Version="3.8.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.9.0" />
<PackageReference Include="TeamCity.VSTest.TestAdapter" Version="1.0.7" />

顺便说一句,我不知道这是否重要,但我的测试项目是多目标 netcoreapp2.0net462

最佳答案

这可能不是很有帮助,但它似乎对我有用。我使用 dotnet-cli 创建了项目。

首先我安装了 NUnit3 测试适配器 instructions from here .这只需要在每台机器上运行一次,因此如果您已经运行过,则无需再次运行。

dotnet new -i NUnit3.DotNetNew.Template

然后我创建了我的解决方案,创建了我的测试项目并将测试项目添加到解决方案中。

dotnet new sln -n Solution
dotnet new nunit -n TestProject -o tests\TestProject
dotnet sln add tests\TestProject\TestProject.csproj

然后我更新了 UnitTest1.cs 以包含两个测试装置,一个属于 Oracle 类别,另一个属于 OracleOdbc 类别。

using NUnit.Framework;

namespace Tests
{
[TestFixture]
[Category("Oracle")]
public class OracleTests
{
[Test]
public void OracleTest()
{
Assert.Fail();
}
}

[TestFixture]
[Category("OracleOdbc")]
public class OracleOdbcTests
{
[Test]
public void OracleOdbcTest()
{
Assert.Fail();
}
}
}

然后我可以指定我选择运行的类别。

dotnet test tests/TestProject/TestProject.csproj --filter TestCategory="Oracle"

dotnet test tests/TestProject/TestProject.csproj --filter TestCategory="OracleOdbc"

两者都只运行一个测试,并且消息显示它是失败的正确测试。

使用 DotNet-Cli 2.1.4 版和 NUnit3TestAdapter 3.9.0 版

关于c# - 如何使用 "dotnet test"按类别过滤 NUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48195865/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com