У меня есть несколько тестовых примеров NUnit, которые нужно запускать по модели STA.
Как обсуждалось на многих веб-сайтах или в блогах (например, здесь ), я добавил файл конфигурации ("app.conig") в свою тестовую сборку NUnit со следующим содержимым.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>
Чтобы проверить, действительно ли тест запускается под STA, я поместил этот тестовый пример:
[Test]
public void CheckSTA()
{
ApartmentState aptState = Thread.CurrentThread.GetApartmentState();
Assert.IsTrue(aptState == ApartmentState.STA);
}
Это прекрасно работает, если я запускаю свой модульный тест на консоли NUnit или в графическом интерфейсе NUnit без использования файла проекта NUnit.
Однако, как только я загружаю модульный тест в графический интерфейс NUnit через файл проекта NUnit (.nunit), модульный тест начинает давать сбой.
Я пробовал другое имя файла конфигурации, следуя тому, что написано в этом блоге ( Здесь ), но использование любого имени файла конфигурации, кроме "app.config", приводит к сбою моего модульного теста при любых обстоятельствах ,
Тем не менее, как правильно настроить это так, чтобы мой модульный тест запускался под STA, несмотря ни на что?