TeamCity SpecFlow NUnit Watin и ApartmentState STA
Я пытаюсь заставить наши тесты specflow watin работать на нашем новом сервере teamcity. Проблема в том, что я не могу заставить встроенный nunit runner запускать тесты в appartmentstate STA.
Мы использовали эту конфигурацию ранее, которая работает с другими тестраннерами:
<NUnit>
<TestRunner>
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
Но бегун теста TeamCity NUnit, похоже, не подхватывает этот конфиг. У нас есть другие тесты работоспособности конфигурации, поэтому мы знаем, что testrunner считывает конфигурацию нашего тестового проекта по крайней мере.
Есть альтернатива для использования атрибута requireSTA следующим образом:
[Test, RequiresSTA]
public void ShouldRunThreadApartmentStateSTAWith()
{
Assert.AreEqual(ApartmentState.STA, Thread.CurrentThread.GetApartmentState());
}
Но поскольку тесты NUnit генерируются SpecFlow, я не могу контролировать, как эти атрибуты установлены.
Как я могу заставить эту установку работать?
2 ответа
Нашел ответ.
Установка атрибута RequireSTA в AssemblyInfo.cs делает конфигурацию устаревшей.
[assembly:RequiresSTA]
Тесты NUnit, сгенерированные SpecFlow, являются частичным определением класса, поэтому просто создайте другое частичное определение класса в другом файле, в котором есть атрибуты.