Watin Test可以从Visual Studio中运行,但不能作为Windows服务运行CCNet

时间:2010-11-15 22:13:53

标签: c# jquery windows-services cruisecontrol.net watin

我们对具有ajax模型弹出窗口的页面进行了Watin测试。测试试图打开窗口,隐藏它然后重新显示它。

当我从Visual Studio或本地构建脚本运行它时,测试运行正常。在构建服务器上运行时,测试失败。

构建服务器是作为Windows服务运行的Cruise Control.Net(以域帐户登录)。我们的构建脚本是用NAnt编写的,我们使用this post中描述的方法运行Watin测试。

使用jquery实现模态ajax弹出窗口。

我们正在使用:

  • Watin 2.0.20
  • NUnit 2.5.5
  • Windows Server 2003 with IE7
  • jQuery 1.4.2

以下是失败测试的片段。



            _ieBrowser.Button("btnToggle").Click();
            _ieBrowser.WaitForComplete();

            Assert.IsTrue(_ieBrowser.Button("btnReshow").Exists);

            _ieBrowser.Button("btnReshow").Click();
            _ieBrowser.WaitForComplete();

            _ieBrowser.TextField("editBody").WaitUntilExists();
            Assert.IsTrue(_ieBrowser.TextField("editBody").Text.Contains(thisIsCustomer));

            _ieBrowser.Button("btnDone").Click();
            _ieBrowser.WaitForComplete();

这一行:

_ieBrowser.TextField("editBody").WaitUntilExists();

超时。

2 个答案:

答案 0 :(得分:4)

默认情况下,Windows服务无法与桌面交互。

如果您进入服务的属性,然后查看“登录”选项卡,您将看到服务帐户的2个选项:本地系统帐户或其他指定帐户。

如果选择“本地系统”帐户,则会启用“允许服务与桌面交互”复选框。

如果启用该选项,然后重新启动服务,它应该允许服务打开和关闭窗口。

答案 1 :(得分:0)

问题是Windows服务无法拥有Windows。这就是你的测试失败的原因。