使用Nunit错误运行WatiN测试?

时间:2009-10-06 15:14:31

标签: nunit watin

当我尝试通过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?

2 个答案:

答案 0 :(得分:1)

我想通了,因为我正在加载一个名为Tests.nunit的NUnit项目,我需要调用应用程序配置文件Tests.config。在这次改变之后,它运作良好。

答案 1 :(得分:1)

有一个cleaner way来解决STAThread要求的问题,但它需要NUnit 2.5。

另外,您是否尝试过TestDriven.Net从Visual Studio运行单元测试?