我有一个Xamarin.UITest
项目,其中包含Android和iOS的UI测试。所有测试都继承自一个基类,如下所示:
[TestFixture(Platform.Android)]
[TestFixture(Platform.iOS)]
public abstract class UITestBase
{
private readonly Platform _platform;
protected IApp App { get; private set; }
protected UITestBase(Platform platform)
{
_platform = platform;
}
[SetUp]
protected virtual async Task BeforeEachTest()
{
App = AppInitializer.StartApp(_platform);
await Task.CompletedTask;
}
}
因此,所有测试都将在Android和iOS上运行。现在,在Visual Studio或Rider之类的IDE中,它可以轻松地让我仅针对特定平台运行测试-例如,在开发过程中,我通常只想针对Android运行测试。
如何从命令行仅针对特定平台运行测试?
dotnet test
将在两个平台上运行它们,我看不到使用NUnit的TestFixture
属性进行过滤的方法。
虽然我更喜欢使用dotnet test
的方法,但是使用NUnit控制台运行程序nunit3-console.exe
也可以,但是我仍然不知道如何使用{{1 }}参数。
答案 0 :(得分:0)
通过dotnet-test(请参见run selective unit tests)
dotnet test Tests.dll--filter iOS
dotnet test Tests.dll--filter Android
或将nunit3-console-runner与Test Selection Language一起使用:
nunit3-console.exe Tests.dll --where "test =~ iOS"
nunit3-console.exe Tests.dll --where "test =~ Android"