使用nunit3-console.exe在Jenkins主服务器上进行Selenium IE 11测试

时间:2019-03-08 17:58:14

标签: c# selenium jenkins nunit internet-explorer-11

我有一个用C#编写的Selenium IE 11测试,当在Debug或Release中本地运行时,它可以完美运行。此代码通过Jenkins部署到Win 10机器上(无从机)。 Jenkins“构建”被配置为构建代码,将test.dll复制到文件夹,然后调用nunit3-console.exe来运行测试。 Jenkins服务还配置了一个域用户帐户作为服务登录帐户。

我可以以(Jenkins)域用户的身份登录到win 10框,然后打开一个cmd窗口并完全运行以下命令

  

C:\ Program Files(x86)\ Jenkins \ workspace \ Prod Login>“ C:\ Program Files   (x86)\ NUnit.org \ nunit-console \ nunit3-console.exe“ C:\ Prod   Login \ Tests \ bin \ Debug \ Tests.dll

但是,如果您尝试通过Jenkins Web UI“构建”解决方案,则在Nunit测试过程中单击几次并提交后,它会在发现某些元素时出现问题。

我知道IE配置是坚如磐石,就像我说以(Jenkins)域帐户登录时,测试在命令窗口中运行正常

这是我得到的错误:

  

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException:   断言失败。 ProcessError * :XPath:   // input [@ placeholder ='Username'],找不到以下元素:   By.XPath:// input [@ placeholder ='Username'],在75后超时   秒;

再次,我知道它不是定位器,它可以与命令窗口中的By.Id或By.Xpath一起使用,并且我的Chrome和Firefox使用相同的代码库进行测试,只是可以使用另一个WebDriver。

我忍不住想,这与詹金斯和/或Nunit使用的身份有关

非常感谢您的帮助!

  

**更新   我只是尝试使用服务帐户配置Jenkins“从站”   以Jenkins Domain用户身份运行,仍然没有运气...

1 个答案:

答案 0 :(得分:0)

我无法仅发表评论,但是我有调试建议。我知道您在说“选择器工作正常”,所以我不建议选择器有任何错误。但是,我建议测试仅在失败的命令之前弹出页面源。 Driver.PageSource。并将其张贴在您可以到达的地方。

这样,您可以确定驱动程序确实看到了它可以使用的DOM中的元素。

这将有助于消除大量潜在问题。即使我们用自己的两只眼睛可以看到,驱动程序总是有可能根本看不到这些选择器将指向的html。