Kir*_*ohn 21 nunit watin windows-server-2008 internet-explorer-8
我的问题是我无法通过简单的WatiN测试来可靠地运行我的运行Windows Server 2008和IE8的开发机器.
我已经看到了几个好帖子,但我仍然遇到问题.以下是帖子:
第一篇文章中的步骤似乎有帮助(在我的hosts文件中注释掉":: 1",将我的站点放在可信站点中,并确保我的app.config有"STA"并设置为"copy if"更新",但他们没有帮助可靠.我尝试了第二个例子中的代码,希望它会有所帮助,但事实并非如此.我使用的是WatiN 2.0版beta 1.
我的NUnit代码如下所示:
protected Browser Browser { get; set; }
[TestFixtureSetUp]
public void SetupPriorToTestsInThisFixture()
{
Browser = new IE();
Browser.GoTo(Constants.SiteCollectionUrl);
}
[TestFixtureTearDown]
public void TearDownAfterTestsInThisFixture()
{
if (Browser != null)
{
Browser.Dispose();
}
}
[Test]
public void WaterThroughThePipes()
{
Link link = Browser.Link(Find.ByText("Calendar"));
bool exists = link.Exists;
Assert.That(exists, Is.True, "Could not find 'Calendar' link.");
}
Run Code Online (Sandbox Code Playgroud)
我所看到的是,有时(虽然很少)我的测试通过了.有时断言失败(exists = false),有时我在尝试打开浏览器时会出现超时,有时我在尝试访问link.Exists时出错.
访问link.Exists的错误如下所示:
MyFixture.WaterThroughThePipes:System.Runtime.InteropServices.COMException:接口未知.(HRESULT异常:0x800706B5)
我现在似乎无法重现超时错误,因此我暂时无法提供(尽管这种情况一直都在发生).
在调试模式下运行时,我倾向于看到不同的结果,而不是在调试模式下运行.
对于它的价值,Firefox 3.0.6从未为我工作过.我喜欢它,但需要IE无论如何工作.这是我在Firefox中遇到的错误.
MyFixture(TestFixtureSetUp):WatiN.Core.Native.Mozilla.FireFoxException:无法连接到jssh服务器,请确保你已经正确安装了jssh.xpi插件----> System.Net.Sockets.SocketException:没有连接可以因为目标机器主动拒绝它127.0.0.1:9997
有任何想法吗?我真的不想回到Selenium(去那里,那样做),但我可能不得不这样做.
小智 29
以管理员身份运行Visual Studio
IE8 确实与 WatiN 合作,自 IE8 首次公开发布以来一直如此。
如果某些东西在调试中工作但在运行时不起作用,通常表明存在计时或 Server 2008 安全锁定问题。
您应该将失败的行放入 try catch 中,然后如果出现异常,则暂停半秒,然后重试。
还要确保您已关闭所有额外的服务器安全锁定,并以管理员身份运行 nUnit 以避免 UAC 妨碍。
| 归档时间: |
|
| 查看次数: |
10717 次 |
| 最近记录: |