从特定平台的命令行运行Xamarin.UI测试



我有一个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"

最新更新