TeamCity SpecFlow NUnit Watin和ApartmentState STA

时间:2012-10-05 09:24:27

标签: nunit teamcity watin specflow apartment-state

我试图让我们的specflow watin测试在我们新的teamcity服务器上运行。问题是我不能让内置的nunit runner在appartmentstate STA中运行测试。

我们之前使用过此配置,可与其他测试人员配合使用:

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

但TeamCity NUnit测试运行器似乎没有接受这个配置。我们有其他的配置健全性测试,所以我们知道testrunner至少会读取测试项目的配置。

可以选择使用RequiresSTA属性,如下所示:

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

但是由于NUnit测试是由SpecFlow生成的,所以我无法控制这些属性的设置方式。

如何让这种设置起作用?

2 个答案:

答案 0 :(得分:3)

SpecFlow生成的NUnit测试是一个部分类定义,因此只需在另一个具有其属性的文件中创建另一个部分类定义。

答案 1 :(得分:2)

找到答案。

在AssemblyInfo.cs中设置RequireSTA属性会使配置过时。

[assembly:RequiresSTA]