我有一个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
也可以,但我还是不知道如何使用TestFixture
参数进行筛选。
使用dotnet测试(请参阅运行选择性单元测试(
dotnet test Tests.dll--filter iOS
dotnet test Tests.dll--filter Android
或者使用带有测试选择语言的nunit3控制台运行程序:
nunit3-console.exe Tests.dll --where "test =~ iOS"
nunit3-console.exe Tests.dll --where "test =~ Android"