0

我在 Visual Studio 2010 中有一个解决方案,其中包括一个使用WatiN的测试项目。它还有一个带有单元测试的测试项目。两者都使用 NUnit 作为框架。我使用Gallio来运行/调试测试。

我正在试用 Visual Studio 2012。我的项目构建良好。我可以使用 NUnit GUI 来运行两组测试。测试资源管理器列出了所有测试(单元和 UI)。我可以在 Visual Studio 中运行/调试单元测试。

当我在 Visual Studio 2012 中运行 UI 测试时,出现错误:

CurrentThread 需要将其 ApartmentState 设置为 ApartmentState.STA 才能使 Internet Explorer 自动化。

错误发生在我的 TestFixtureSetup 函数中的以下行:

browser = new IE(...);

我已经用谷歌搜索了这个错误,并看到了很多关于在 app.config 中添加行的建议。奇怪的是我已经有了这些台词。

<sectionGroup name="NUnit">
  <section name="TestRunner" 
           type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>

...

<NUnit>
  <TestRunner>
    <!-- Valid values are STA or MTA (Others are ignored) -->
    <add key="ApartmentState" value="STA" />
  </TestRunner>
</NUnit>

有没有人让 WatiN 在 Visual Studio 2012 中使用测试资源管理器?有什么建议让它工作吗?是否存在已知的兼容性问题?

我还尝试使用 RC 安装 Gallio,但它破坏了一些需要努力修复的问题。我更喜欢使用集成的测试资源管理器。

4

1 回答 1

2

在这里找到了解决方案。

我在 AssemblyInfo.cs 文件中添加了以下内容:

[assembly: RequiresSTA]

仍然很突出的是为什么测试运行程序看不到 app.config 中的 STA 设置?

于 2012-09-11T13:47:07.670 回答