zoukankan      html  css  js  c++  java
  • 使用WatiN测试Web,常见问题及其解决方法

    1.既然是测试,那么一般就要用到断言,大家一般采用NUnit做为断言工具,当我们使用NUnit进行断言WatiN的时候,gui上每每出现如下 错误

    WatinStudy.Test.FindCustomerAndOrders.ShouldFindCustomer:
    System.Threading.ThreadStateException : The CurrentThread needs to have it's ApartmentState set to ApartmentState.STA to be able to automate Internet Explorer.

    线程必须是在STA模式下. 解决这个问题, 我们可以 给你要测试的dll,加入一个 config文件, config文件的名称必须要跟 dll的文件名称一致,(比如你要测试的dll文件名称为 Watin.Test.dll,那么你的config文件名称要为 Watin.Test.dll.config),在 这个config文件内加入如下xml:

    <?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>

    这是使用NUnit进行断言的方式,不过我更喜欢 MbUnit.当我们使用MbUnit的时候,就不必像NUit那样麻烦的去配置xml文件. 需要的只是 在被测试的类的上 加入以下特性就ok了

    [TestFixture(ApartmentState = ApartmentState.STA)]

    另:我个人是及其喜欢的MbUnit的,因为其不久完全兼容 NUit而且,而且还其他了很多 方便的特性,此处的STA模式是一个,另外如果大家进行数据库测试的话,那么MbUnit的RollBack,能让你 对数据库的各种操作进行自动回滚.

    2.WatiN启动IE,执行完 我们定义的各种操作,无法关闭IE.

    这个问题,主要是 WatiN跟我们的IE的各种插件相冲突,如果你不能确定 具体跟IE的哪个插件相冲突,我建议大家还是把IE所有的插件都禁用好了.方法如下

    工具--管理加载项--把有不用的加载项禁用掉--重新启动IE即可。

    SpaceBuilder,构建您的空间...
  • 相关阅读:
    团队-团队编程项目爬取豆瓣电影top250-代码设计规范
    团队编程项目作业2-团队编程项目开发环境搭建过程
    团队编程项目作业2-团队编程项目设计文档
    《结对-结对编项目作业名称-开发环境搭建过程》
    《20170912-构建之法:现代软件工程-阅读笔记》
    结对编程项目作业2-英文词频检测程序-设计文档
    个人-GIT使用方法
    阅读任务-阅读提问
    《团队-Python 爬取豆瓣电影top250-成员简介及分工》
    团队-爬取豆瓣电影TOP250-需求分析
  • 原文地址:https://www.cnblogs.com/xieran/p/1331445.html
Copyright © 2011-2022 走看看