现在的位置: 首页 > 综合 > 正文

WatiN和Nunit合用测试WEB时遇到的问题

2012年08月11日 ⁄ 综合 ⁄ 共 1172字 ⁄ 字号 评论关闭

  一直都是用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页面的感觉。。

抱歉!评论已关闭.