Запустите TestFixtures по порядку с помощью NUnit
Мне нужно заказать тестовые приборы в моем приложении NUnit C#. У меня есть пример того, как запустить упорядоченные методы тестирования с этой страницы, и я попытался реализовать ту же логику для тестовых приборов с помощью тех же методов, которые были предоставлены в примере приложения. В нашем приложении тестовое устройство разделено для каждого класса, и у каждого тестового устройства есть один метод тестирования. Наша последняя попытка заключалась в использовании Parent Test Fixture, который наследуется от класса с именем: OrderedTestFixture (так же, как в примере), который имеет следующий метод:
public IEnumerable<NUnit.Framework.TestCaseData> TestSource
{
get
{
var assembly = Assembly.GetExecutingAssembly();
foreach (var order in methods.Keys.OrderBy(x => x))
{
foreach (var methodInfo in methods[order])
{
MethodInfo info = methodInfo;
yield return new NUnit.Framework.TestCaseData(
new TestStructure
{
Test = () =>
{
object classInstance = Activator.CreateInstance(info.DeclaringType, null);
info.Invoke(classInstance, null);
}
}).SetName(methodInfo.Name);
}
}
}
}
Предполагается, что этот метод возвращает по порядку методы тестирования, которые будут выполняться. Однако, даже если он возвращает методы тестирования по порядку, он не может выполнить их по порядку.
Я использую ту же логику, что и в примере с приложением. Класс orderTestAttrribute, который наследуется от Attribute, который будет размещен в каждом методе тестирования следующим образом:
[Test]
[OrderedTest(1)]
[BeforeAfterTest]
public void TestMethod() { }
Кто-нибудь знает, как я могу заставить эту работу работать, не меняя мою текущую реализацию одного testFixture с одним тестовым классом отдельно?
1 ответ
Итак, если я вас правильно понял, вы хотите заказать тестирование для нескольких TestFixtures. Таким образом, в этом случае вы не хотите использовать OrderedTestFixture, потому что он был специально создан для того, чтобы НЕ запускать тест для нескольких приборов. Если вы посмотрите на мой репозиторий GitHub из предыдущего вопроса, вы захотите следовать примеру 2. Обратите внимание, что в этом случае вы должны использовать только атрибут OrderedTest - использование Test отбросит все это, потому что тогда оно будет случайным образом запланировано NUnit вместо того, чтобы упорядочиваться с помощью TestCaseData. Обратитесь к моему сообщению в блоге для более подробной информации.
Надеюсь, это поможет.