Я хотел бы протестировать приложение, которое использует Буфер обмена (WindowsForms), и мне нужен Буфер обмена в моих модульных тестах также. Для использования его это должно работать в режиме STA, но начиная с NUnit TestFixture
не имеет основного метода, я не знаю, где/как аннотировать его.
Для NUnit 2.2, 2.4 (см. Простое решение для 2.5 ниже):
Добавьте файл app.config в проект, содержащий ваши модульные тесты, и включите следующее:
<?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 со следующим кодом C #:
if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
{
throw new ThreadStateException("The current threads apartment state is not STA");
}