1

新しい teamcity サーバーで specflow ワチン テストを実行しようとしています。問題は、組み込みの nunit ランナーを取得して、appartmentstate STA でテストを実行できないことです。

以前にこの構成を使用しましたが、これは他のテストランナーと連携します。

<NUnit>
    <TestRunner>
        <add key="ApartmentState" value="STA" />
    </TestRunner>
</NUnit>

しかし、TeamCity NUnit テスト ランナーは、この構成を認識していないようです。他の構成の健全性テストが実施されているため、テストランナーが少なくともテスト プロジェクトの構成を読み取ることがわかっています。

次のように RequiresSTA 属性を使用する代替手段があります。

[Test, RequiresSTA]
public void ShouldRunThreadApartmentStateSTAWith()
{
  Assert.AreEqual(ApartmentState.STA, Thread.CurrentThread.GetApartmentState());
}

しかし、NUnit テストは SpecFlow によって生成されるため、これらの属性の設定方法を制御することはできません。

このセットアップを機能させるにはどうすればよいですか?

4

2 に答える 2

3

答えが見つかりました。

AssemblyInfo.csでRequireSTA属性を設定すると、構成が廃止されます。

[assembly:RequiresSTA]
于 2012-10-05T13:13:38.477 に答える
3

SpecFlow によって生成された NUnit テストは部分クラス定義であるため、属性を持つ別のファイルに別の部分クラス定義を作成するだけです。

于 2012-10-07T17:31:37.183 に答える