当尝试在 Visual Studio 2008 中运行一个非常简单的 WatiN 2.0 (CTP3) 测试时,我发现第一个总是执行得很好。第二种测试方法似乎破坏了 IE 对象中的某些内容,产生以下异常:
测试方法 testProject.WatinTest.testTwo 抛出异常:System.Runtime.InteropServices.InvalidComObjectException:无法使用已与其底层 RCW 分离的 COM 对象。
示例代码如下。由于初始化方法在 VS2008 中的工作方式,必须定义浏览器变量static
,我认为这可能是问题的关键。不幸的是,除非浏览器以通用方法打开,否则这意味着每个测试都有一个单独的窗口,这并不理想
我将非常感谢有关如何解决此问题的任何想法。谷歌搜索和 SO 搜索没有产生任何有用的结果,所以我希望这个问题的一个好的答案能够帮助社区。非常感谢,
private static IE ie
[ClassInitialize]
public static void testInit(TestContext testContext)
{
ie = new IE("http://news.bbc.co.uk");
}
[TestMethod]
public void testOne()
{
Assert.IsTrue(ie.ContainsText("Low graphics"));
}
[TestMethod]
public void testTwo()
{
Assert.IsTrue(ie.ContainsText("Low graphics"));
}