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, являются частичным определением класса, поэтому просто создайте другое частичное определение класса в другом файле, в котором есть атрибуты.

Другие вопросы по тегам