Я использую Xamarin.UITest и NUnit для автоматизации мобильных приложений и использую конвейер Azure DevOps для запуска тестов в AppCenter. В настоящее время тесты в AppCenter проходят нормально как на платформах Android, так и на iOS. Однако у меня есть требование, по которому я хотел бы запускать определенные тесты только на Android и опираться только на iOS. Может ли кто-нибудь поделиться некоторыми предложениями о том, как это сделать?
Как запустить тесты автоматизации в AppCenter только для Android и iOS?
Ответы (1)
Наконец, я нашел решение самостоятельно. Я заставил его работать, проверяя платформу перед каждым тестом в методе настройки. Пожалуйста, найдите мой приведенный ниже код, написанный на C # и NUnit. Например, есть 2 теста, в которых должен выполняться только один тест, а другой не должен выполняться, затем один тест (необходимо запустить) с категорией с пометкой iOS, а другой - без категории.
[TextFixture(Platform.Android)]
[TextFixture(Platform.iOS)]
public class Sample{
[SetUp]
public void RunBeforeEachTest()
{
if(AppManager.Platform == Platform.iOS)
{
if(!hasiOSCategory())
{
Assert.Inconclusive();
}
}
}
Затем выполните проверку метода настройки, чтобы проверить, является ли текущая платформа iOS, а также проверьте, есть ли у теста категория iOS.
// this method is used to get all categories of the test.
private static bool hasiOSCategory()
{
var categories = TestContext.CurrentContext.Test?.Properties["Category"];
bool hasTestContainsiOSCategory = categories != null && categories.Contains(Constant.iOS);
return hasTestContainsiOSCategory;
}
[Test,Category("iOS")]
public void TestWithCategory()
{
\\your code
}
[Test]
public void TestWithoutCategory()
{
}
}
Наконец, если что-то можно достичь в рамках фреймворка, то оно должно работать и в AppCenter.
person
Dinesh Kumar
schedule
31.07.2020
Device.RuntimePlatform
, как показано здесь docs.microsoft.com/en-us/xamarin/xamarin-forms/platform/device, и если он равенDevice.iOS
, просто сделать возврат в своей настройке? - person Saamer   schedule 19.07.2020