一直都是用Nunit做单元测试,WEB页面的测试一贯是手动测试的。可是Matrin大师说了,懒惰是一个好程序员的标志。我一向自己认为是一个好程序员,于是懒劲发作,上网去找寻WEB测试的工作。首先想到的是NUnitASP。但是好似网上的评价一般,搜索的过程发现另一个好工具WatiN。好评如潮。
于是马上去了官网下载了,按照官网的例子做了一个入门,不错。自动测试的感觉还真的很爽。
立马加到自己新建的一小项目中去做测试。写好测试类和测试代码。开心的打开Nunit,运行测试,等待我的却是一遍红色。。如下提示
WebTest.TestRegistPage.TestGoogle:
System.Threading.ThreadStateException : The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.
让我一下傻住了。。
回到官网,仔细的找,终于找到了解决办法
首先为测试的类增加config文件,一般你增加一个app.config文件到项目中即可。
app.config文件的内容如下
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="NUnit">
<section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
</sectionGroup>
</configSections>
<NUnit>
<TestRunner>
<!-- Valid values are STA,MTA. Others ignored. -->
<add key="ApartmentState" value="STA" />
</TestRunner>
</NUnit>
</configuration>
然后为测试的类增加Setup方法
并增加一行代码 .net框架版本不同,代码增加不同
//1.1
//System.Threading.Thread.CurrentThread.ApartmentState = System.Threading.ApartmentState.STA;
//2.0
//System.Threading.Thread.Currentthread.SetApartmentState(System.Threading.ApartmentStat.STA);
好了,编译一下测试类。在运行,即可以享爱自动测试WEB页面的感觉。。