NUnit GUI Runner and Apartment State

Как установить состояние квартиры в NUnit GUI runner? Я пытаюсь запустить один тест NUnit с WatiN, и я получаю сообщение:

MyNamespace.LoginTests.CanLogin:
System.Threading.ThreadStateException: для CurrentThread необходимо, чтобы он установил ApartmentState для ApartmentState.STA, чтобы иметь возможность автоматизировать Internet Explorer.

Ответ 1

Вам нужно добавить некоторую конфигурацию в файл сборки app.config(если у вас его нет, создать новый), чтобы сообщить NUnit о запуске как STA:

<?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>

(исходный источник)

Ответ 2

Начиная с NUnit 2.5 используйте RequiresSTA атрибут в ваших тестах.