У меня есть некоторые тестовые примеры NUnit, которые нужно запускать под моделью STA.Проблема с runnig тестов NUnit под STA
Как обсуждалось на многих веб-сайтах или блогах (например, here), я добавил файл конфигурации («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>
Чтобы проверить, если тест действительно бежал под ГЕН я ставлю этот тестовый пример:
[Test]
public void CheckSTA()
{
ApartmentState aptState = Thread.CurrentThread.GetApartmentState();
Assert.IsTrue(aptState == ApartmentState.STA);
}
Это отлично работает, если я запускаю мое модульное тестирование на NUnit консоли или на NUnit GUI без использования файл проекта NUnit.
Однако, как только я загружаю единичный тест в графический интерфейс NUnit через файл проекта NUnit (.nunit), модульный тест начинает сбой.
Я пробовал использовать другое имя файла конфигурации, следуя тому, что написано в этом блоге (Here), но используя любое имя файла конфигурации, отличное от «app.config», приводит к отказу моего модульного теста при любых обстоятельствах.
Было сказано, что это правильный способ установить это, чтобы мой модульный тест проходил под STA независимо от того, что?
Просьба найти документацию и образец кода на странице http://www.nunit.org/index.php?p=requiresSTA&r=2.5 – GregC
Самый простой способ - просто добавить атрибут [assembly: RequiresSTA] в AssemblyInfo. CS. Как вы это делали, я обнаружил, что проекты NUnit игнорируют настройки STA App.config (хотя Resharper и Visual Studio соблюдали бы это). Применение атрибута сборки - хорошее решение для быстрого и безошибочного решения! –
Бонусные баллы, если вы обновите ответ, чтобы включить NUnit 3.0 ['[Apartment (ApartmentState.STA)]'] (https://github.com/nunit/docs/wiki/Apartment-Attribute). – jnm2