【问题标题】:How do I run a coded UI Test using Jenkins?如何使用 Jenkins 运行编码的 UI 测试?
【发布时间】:2017-12-21 13:15:54
【问题描述】:

在过去的几天里,我一直在绞尽脑汁想弄清楚如何直接从 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)/

我的问题是:

  • 为什么我的测试总是给我这个错误,尽管我的 测试代理是否已设置为交互式?
  • 另外,我将如何获得它 从 Jenkins 运行,以便它直接与桌面交互 作为一个交互式过程?

【问题讨论】:

    标签: visual-studio jenkins coded-ui-tests


    【解决方案1】:

    MS 测试控制器和代理程序有很多问题,并且没有适当的文档。这就是为什么我的公司开发了一个免费和开源的替代方案。你可以在这里找到它-http://meissarunner.com 有一个文档链接,您可以在其中轻松设置。由于它使用 .NET 核心,您需要指定一个附加参数,提及您使用的 .net 框架版本 --nativeRunnerArguments="--framework=net462" 您可以在此处找到框架的完整列表 - https://docs.microsoft.com/en-us/dotnet/standard/frameworks 如果您有有任何问题请联系我。

    以服务器模式启动 Meissa:

    meissa.exe initServer
    

    然后启动一个代理:

    meissa.exe testAgent --testAgentTag="APIAgent" --testServerUrl="http://IPServerMachine:5000"
    

    在 Jenkins 工作中启动 runner:

    meissa.exe runner --resultsFilePath="pathToResults\result.trx" --outputFilesLocation="pathToBuildedFiles" 
    --agentTag="API" --testTechnology="MSTestCore" 
    --testLibraryPath="pathToBuildedFiles\SampleTestProj.dll"
    

    【讨论】:

      【解决方案2】:

      这有点晚了,但要让代理与桌面交互,您需要做的就是在代理的设置上选中在交互过程中运行的复选框。如果它们都在同一个盒子上,你也不应该需要主人和代理人。我认为您可以更改 jenkins 服务以与桌面进行交互。希望这可以帮助某人。代理和大师作品,但我肯定会检查 meissarunner,看看它是否更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-19
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 2015-07-08
        • 1970-01-01
        相关资源
        最近更新 更多