Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VSTS是否可以对localhost web app运行selenium UI测试任务?_Selenium_Specflow_Azure Pipelines_Azure Pipelines Build Task_Nunittestadapter - Fatal编程技术网

VSTS是否可以对localhost web app运行selenium UI测试任务?

VSTS是否可以对localhost web app运行selenium UI测试任务?,selenium,specflow,azure-pipelines,azure-pipelines-build-task,nunittestadapter,Selenium,Specflow,Azure Pipelines,Azure Pipelines Build Task,Nunittestadapter,我可能在这里遗漏了一些明显的东西,但我的mvc web应用程序在使用localhost的开发机器上使用specflow UI测试成功地进行了测试,但我无法在VSTS中的CI构建管道上使用它 这是我的安装程序,1 x Asp.Net解决方案,包括: 1个WebCalculator(只需将2个数字相加的MVC应用程序) 1个UI Specflow测试项目 在我的开发机器上:我可以在VisualStudio中使用NUnit3TestAdapter运行单元测试,我的网站运行在localhost:58

我可能在这里遗漏了一些明显的东西,但我的mvc web应用程序在使用localhost的开发机器上使用specflow UI测试成功地进行了测试,但我无法在VSTS中的CI构建管道上使用它

这是我的安装程序,1 x Asp.Net解决方案,包括:

  • 1个WebCalculator(只需将2个数字相加的MVC应用程序)
  • 1个UI Specflow测试项目
在我的开发机器上:我可以在VisualStudio中使用NUnit3TestAdapter运行单元测试,我的网站运行在localhost:58909

在VSTS上:在生成任务之后,Visual Studio测试任务将拾取NUnit适配器并尝试运行测试(使用InternetExplorerDriver服务器),但在本地主机上找不到正在运行的我的网站似乎:

以下是输出:

2017-04-03T09:02:31 Starting test execution, please wait...
2017-04-03T09:02:32 Information: NUnit Adapter 3.7.0.0: Test execution started
2017-04-03T09 Information: Running all tests in C:\a\1\s\WebCalculator.UiTestsNUnitRunner\bin\Release\WebCalculator.UiTestsNUnitRunner.dll
2017-04-03T09:02:32 Information: NUnit3TestExecutor converted 3 of 3 NUnit test cases
2017-04-03T09:02:33  Started InternetExplorerDriver server (32-bit)
2017-04-03T09:02:33  3.0.0.0
2017-04-03T09:02:33  Listening on port 1065
2017-04-03T09:02:33  Only local connections are allowed
2017-04-03T09:03:54  Started InternetExplorerDriver server (32-bit)
2017-04-03T09:03:54  3.0.0.0
2017-04-03T09:03:54  Listening on port 1123
2017-04-03T09:03:54  Only local connections are allowed
2017-04-03T09:03:54  Failed   AddTwoNumbers("50","70","120",System.String[])
2017-04-03T09:03:54  ##[error]Error Message:
2017-04-03T09:03:54  ##[error]   OpenQA.Selenium.WebDriverTimeoutException : Timed out after 10 seconds
2017-04-03T09:03:54  ##[error]  ----> OpenQA.Selenium.NoSuchElementException : Unable to find element with id == summandOne
所以我的问题是,VisualStudio测试任务是否足够聪明,可以针对我的网站进行测试,该网站是作为localhost:58909解决方案的一部分构建的

MS的示例如下:

Specflow测试是否指向XXX.azurewebsites.net url,因此我开始认为构建网站并一起执行UI测试(就像我正在尝试的那样)不是正确的方法


如果您想对网站运行Specflow测试,我需要首先构建并发布到托管环境中吗?

基于源和测试路径(c:\a\1\s…),我假设您使用的是托管代理,并在构建代理上进行测试。你不能这么做

首先,托管代理作为服务运行,它无法运行交互测试(selenium UI测试)

其次,localhost意味着测试机器网站机器相同的机器上。显然,您的网站没有在托管代理中运行

关于您提到的文章,该网站位于azure(baseURL=“”),因此可以从internet访问

您可以参考以下步骤来实现您的要求:

  • 设置以交互模式运行的内部构建代理(如果它以服务模式运行,则需要在远程计算机上进行测试,请参阅该文章以部署代理、复制文件并运行测试)
  • 创建新的生成定义以使用该生成代理
  • 添加IIS Web应用部署步骤或其他以将您的Web应用部署到IIS()
  • 在测试代码中更改网站URL(如果生成代理在同一台计算机上运行,则可以使用localhost)

  • 注意:如果要在远程计算机上运行测试,则需要从构建代理访问远程计算机。

    太好了,谢谢您的澄清。您已经证实了我的怀疑,即该网站必须部署/托管在某个地方,以便对其运行任何selenium UI测试。我只是想知道MS是否设法将其构建到Visual Studio测试任务中,因为它在输出中显示“localhost”,但它不处理selenium UI测试,而只处理dll测试,这是有意义的。