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

时间:2019-10-30 11:57:11

标签: xamarin .net-core nunit nunit-console xamarin.uitest

我有一个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 }}参数。

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"