C#のGUIコントロールの一部はSTAThreadで実行しないとエラーがでることがあります。例えば、DataGridViewにコンボボックスなどが該当します。

NUnitの標準の設定ではSTAThreadでテストメソッドを実行してくれないので、このようなGUIコントロールを含むテストを実行できません。
そのような場合は、次の内容の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>

次の記事を参考にしました。そのまんまですね。

カテゴリー: 技術情報