2016-01-23 37 views
0

所以我刚刚拿到WatiN,想做一些自动验收测试。 我有resharper,以及使用NuGet管理器的Nunit和WatiN。将Embed Interop的引用Interop.SHDocVw属性更改为false,所以一切正常,浏览器显示,在一个框中写入文本(有点快,所以我只看到最终结果,没有打印,我不知道是否有可能减慢速度),点击一个按钮等等。好吧......直到我在测试结束时添加一个断言。它失败。 它看起来像浏览器在测试结束前关闭。我已经使用了WaitForComplete()方法,但它看起来没有任何作用。有没有办法解决这个问题?Asp .Net MVC WatiN失败声明

using System.Threading; 
using NUnit.Framework; 
using WatiN.Core; 

namespace Testy 
{ 
    [TestFixture] 
    [Apartment(ApartmentState.STA)] 
    public class UnitTest2 
    { 
     [Test] 
     public void SearchForWatiNOnGoogle() 
     { 
      using (var browser = new IE("google.com")) 
      { 
       browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
       browser.Button(Find.ByName("btnG")).Click(); 
       Assert.IsTrue(browser.ContainsText("WatiN")); 
      } 
     } 
    } 
} 

这是我试过的,但没有更好的结果。

[Test] 
     public void SearchForWatiNOnGoogle() 
     { 
      using (var browser = new IE("google.com")) 
      { 
       browser.TextField(Find.ByName("q")).TypeText("WatiN"); 
       browser.WaitForComplete(4000); 
       browser.Button(Find.ByName("btnG")).Click(); 
       browser.WaitForComplete(4000); 
       Assert.IsTrue(browser.ContainsText("WatiN")); 
       browser.Close(); 
      } 
     } 

回答

0

尝试自动关闭设置为false,即

 
browser.AutoClose = false; 

然而 - 这个项目已经多年没有很活跃。那么为了UI Automation而在Visual Studio中内置的功能呢?