我在 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,但它破坏了一些需要努力修复的问题。我更喜欢使用集成的测试资源管理器。