当我尝试通过NUnit ide运行WatIn测试时,我收到错误消息:
ConsoleApplication1.Tests.CanBrowseToMicrosoft: System.Threading.ThreadStateException:CurrentThread需要将它的ApartmentState设置为ApartmentState.STA才能自动化Internet Explorer。
我创建了一个名为ConsoleApplication1.exe.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>
我的课程Tests.cs如下:
[TestFixture]
public class Tests
{
[Test]
public void CanBrowseToMicrosoft()
{
using (var browser = new IE())
{
browser.GoTo("http://www.microsoft.com/");
Assert.That("Microsoft Corporation", Is.EqualTo(browser.Title));
}
}
}
我做错了吗?
我遇到的另一个问题是如何让NUnit测试结果显示在vs2008中而不是必须运行NUnit Gui?
答案 0 :(得分:1)
我想通了,因为我正在加载一个名为Tests.nunit的NUnit项目,我需要调用应用程序配置文件Tests.config。在这次改变之后,它运作良好。
答案 1 :(得分:1)
有一个cleaner way来解决STAThread要求的问题,但它需要NUnit 2.5。
另外,您是否尝试过TestDriven.Net从Visual Studio运行单元测试?