从特定平台的命令行运行Xamarin.UI测试
我有一个从特定平台的命令行运行Xamarin.UI测试,xamarin,.net-core,nunit,nunit-console,xamarin.uitest,Xamarin,.net Core,Nunit,Nunit Console,Xamarin.uitest,我有一个Xamarin.UITest项目,其中包含Android和iOS的UI测试。所有测试都从基类继承,基类如下所示: [TestFixture(Platform.Android)] [TestFixture(Platform.iOS)] 公共抽象类UITestBase { 私有只读平台_平台; 受保护的IApp应用程序{get;private set;} 受保护的UITestBase(平台) { _平台=平台; } [设置] 受保护的虚拟异步任务beforeachtest() { App=A
Xamarin.UITest
项目,其中包含Android和iOS的UI测试。所有测试都从基类继承,基类如下所示:
[TestFixture(Platform.Android)]
[TestFixture(Platform.iOS)]
公共抽象类UITestBase
{
私有只读平台_平台;
受保护的IApp应用程序{get;private set;}
受保护的UITestBase(平台)
{
_平台=平台;
}
[设置]
受保护的虚拟异步任务beforeachtest()
{
App=AppInitializer.StartApp(_平台);
等待任务。完成任务;
}
}
因此,所有测试都将在Android和iOS上运行。现在,在Visual Studio或Rider这样的IDE中,我可以轻松地只为特定平台运行测试——例如,在开发过程中,我通常只想为Android运行测试
如何从命令行仅为特定平台运行测试
dotnet-test
将在两种平台上运行它们,我看不到使用NUnit的TestFixture
属性进行过滤的方法
虽然我更喜欢使用dotnet test
的方法,但也可以使用NUnit控制台运行程序nunit3 console.exe
,但我还是不知道如何使用TestFixture
参数进行过滤。使用dotnet test(请参阅)
或将nunit3控制台运行程序用于:
您可以在@JackHua MSFT中尝试答案,它至少对单个测试有效,但我找不到让它运行所有测试的方法(尝试过的通配符):
nunit3-console.exe MyAssembly.dll--test=“My.full.Qualified.test.Class(Android)”
Category参数工作正常,但我无法使text fixture参数工作。nunit3-console.exe Xamarin.UITest.dll——其中=cat==highdotnet测试真的有效吗?它只恢复我的ui测试项目,但不运行任何测试tests@pschlz是的,或者至少“它在我的机器上工作”:P
dotnet test Tests.dll--filter iOS
dotnet test Tests.dll--filter Android
nunit3-console.exe Tests.dll --where "test =~ iOS"
nunit3-console.exe Tests.dll --where "test =~ Android"