在过去的几天里,我一直在试图弄清楚如何直接从Jenkins Job运行Coded UI测试。因为我对詹金斯很新。我计划使用安装在相同机器中的测试控制器和代理来运行jenkins作业,作为存储项目的本地VS项目存储库。
我的目标是让Jenkins Job运行一个直接与我的桌面交互的编码ui测试。
用于测试的规范:
1. VS Enterprise 2015
2. Agents for MS 2013
3. Jenkins 1.69
到目前为止我所做的是下面(这是我从Jenkins运行的批处理命令,我从How to run Coded UI test file from Visual Studio command prompt using batch file?复制而来)在通过CMD运行时成功运行:
@echo off
:: Running tests without VS Enterprise is possible if you install the Test Agent package: https://msdn.microsoft.com/en-us/library/dd648127.aspx
set test_runner="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe"
set test_dlls="C:\Location\Compiled\Tests\Project.CodedUI.Test.dll"
:: If tests is set then only these comma separate test cases are run
:: set tests="Test1,Test2"
set tests=""
if %tests% == "" (
%test_runner% %test_dlls% > CodedUITestResults.txt
) else (
%test_runner% %test_dlls% /tests:%tests%
)
pause
我在我的Windows机器上使用我的本地存储库(不是TFS或GIT,因为这不是必需的),这是在运行脚本时成功执行编码的ui测试。
但是,当复制jenkins中的步骤时,我得到了这个错误(即使在.settings文件中使用VS配置测试控制器之后):/
调用测试类的初始化方法时出错CodedUITest:Microsoft.VisualStudio.TestTools.UITest.Extension.UITestException:要运行与桌面交互的测试,必须将测试代理设置为作为交互式进程运行。有关详细信息,请参阅“如何:设置测试代理以运行与桌面交互的测试”(http://go.microsoft.com/fwlink/?LinkId=159018) /
我的问题是:
答案 0 :(得分:0)
MS测试控制器和代理是非常错误的,并且没有适当的文档。这就是我公司开发免费开源替代品的原因。你可以在这里找到它 - http://meissarunner.com 有一个文档链接,您可以很容易地进行设置。因为,它使用.NET核心,你需要指定一个额外的参数,提到你使用的.net Framework版本--nativeRunnerArguments =" - framework = net462"你可以在这里找到一个完整的框架列表 - https://docs.microsoft.com/en-us/dotnet/standard/frameworks如果你有任何问题,请给我留言。
以服务器模式启动Meissa:
short a, *pt = &a;
printf("%p, %p\n", (void*)&a, (void*)pt);
scanf("%hd", &a);
printf("%p, %p\n", (void*)&a, (void*)pt);
然后启动代理:
meissa.exe initServer
在詹金斯的工作中,开始跑步者:
meissa.exe testAgent --testAgentTag="APIAgent" --testServerUrl="http://IPServerMachine:5000"
答案 1 :(得分:0)
这有点晚了,但是要使代理与桌面进行交互,您需要做的就是在代理的设置上选中“以交互方式运行”复选框。如果它们都在同一框中,则您不需要主服务器和代理。我认为您可以更改jenkins服务以与桌面进行交互。希望这对某人有帮助。特工和大师的作品,但我一定会去看看meissarunner的,看看是否更好。