在Teamcity和本地运行Selenium Nunit测试

在Teamcity和本地运行Selenium Nunit测试,selenium,nunit,teamcity,Selenium,Nunit,Teamcity,我正在TeamCity服务器上运行Selenium Nunit测试,该服务器在我的服务器上本地运行。我遇到的问题是有些测试通过了,有些测试失败了。然而,当我手动打开visual Studio并在那里运行测试来运行相同的测试时,它们似乎通过了 我尝试重新启动TeamCity服务器,尝试清理所有文件。删除文件并重建所有内容,但似乎什么都不起作用。让测试运行并没有什么问题,只是测试没有通过断言,而当我通过visual Studio手动运行断言时,相同的测试通过了断言 有没有想过是什么原因导致了这种情况

我正在TeamCity服务器上运行Selenium Nunit测试,该服务器在我的服务器上本地运行。我遇到的问题是有些测试通过了,有些测试失败了。然而,当我手动打开visual Studio并在那里运行测试来运行相同的测试时,它们似乎通过了

我尝试重新启动TeamCity服务器,尝试清理所有文件。删除文件并重建所有内容,但似乎什么都不起作用。让测试运行并没有什么问题,只是测试没有通过断言,而当我通过visual Studio手动运行断言时,相同的测试通过了断言


有没有想过是什么原因导致了这种情况?

一种可能是您的TeamCity正在使用与您的本地系统不同的NUnit版本。另一个原因是TC默认生成NUnit项目文件,并使用该文件运行测试,而不是直接执行程序集。

如果某个特定测试在不可单击的元素中始终为false,这是因为您在TC服务器上使用的webdriver分辨率与本地不同

如果这个测试有时抛出这个错误,那是因为你的网站在你的TC服务器上的响应比本地更快,所以有时候你不能点击你的元素,有时候你可以

您必须确保(代码中的某个地方)在使用元素时可以单击它们

我在水疗场所遇到了这样的问题

我写了一个不可见的跨距,在这里我标记我的页面真的可以使用了


添加了这个不可见的范围之后,我再也没有看到过这个问题。

我在Teamcity server上也面临同样的问题,我的配置是Visual Studio,它带有Nunit和Selenium Webdriver

帮助my的是,您可以为页面上动态加载的元素设置等待方法。当TeamCity代理在VM上运行构建时,测试以无头模式运行,TeamCity配置默认情况下没有实现等待/线程.Sleep。
@chillax786

嘿,查理,谢谢你的意见!我认为您的第二点可能是有效的,因为我正在使用Nuget Installer恢复所有包。有没有想过我该如何着手解决我的问题?我还注意到问题可能出在SeleniumWebDriver上,因为我查看了stacktrace中一些失败的测试,它说某个元素不可单击。然而,当我在本地运行同一个测试时,我并没有遇到这个问题……所以我也有点困惑。我不是TC用户,但我在另一个线程上读到,他们有一个模糊的设置,使得它运行测试的方式更像您自己,只在命令行上运行程序集,而不是生成项目。很抱歉,我在谷歌上找不到它,但也许其他人知道它是什么-(谢谢,@Pacurar Gabriel!从控制台运行TeamCity代理,而不是作为服务运行。)helped@chillax786如何实现这一点,听起来是一个很好的解决方案?谢谢您可以通过打开任务管理器并通过转到任务管理器的“服务”部分停止TeamCity构建代理来实现这一点。然后从命令行使用这将启动TeamCity代理c:\TeamCity\buildagent\bin\agent.bat启动那些失败的、我们一次又一次失败的项目,将状态更改为“已通过”(为单个项目工作),但由于我需要同时运行多个项目,我需要以这种方式配置每个虚拟机和单个虚拟机,我想,无论如何,再次感谢您的输入。您也可以设置多个TeamCity代理以同时运行不同的项目