用于BrowserStack测试的TeamCity配置

用于BrowserStack测试的TeamCity配置,teamcity,browserstack,Teamcity,Browserstack,在TeamCity中,我正在设置“命令行”跑步者类型。我的目标是在窗口中运行命令行脚本&让它运行。然后转到下一个生成步骤,而不关闭在上一步骤中打开的命令行窗口。在上一个构建步骤中,我想关闭在初始构建步骤中仍然打开的命令行窗口 以上场景基于我在配置“BrowserStack”测试项目时的构建步骤。我想在我的“命令行”运行程序类型步骤中执行BrowserStackLocal.cmd并让它运行。然后转到下一个构建步骤,在该步骤中我有所有测试。最后在最后一个构建步骤中,我想在完成测试后关闭命令行窗口 当

在TeamCity中,我正在设置“命令行”跑步者类型。我的目标是在窗口中运行命令行脚本&让它运行。然后转到下一个生成步骤,而不关闭在上一步骤中打开的命令行窗口。在上一个构建步骤中,我想关闭在初始构建步骤中仍然打开的命令行窗口

以上场景基于我在配置“BrowserStack”测试项目时的构建步骤。我想在我的“命令行”运行程序类型步骤中执行BrowserStackLocal.cmd并让它运行。然后转到下一个构建步骤,在该步骤中我有所有测试。最后在最后一个构建步骤中,我想在完成测试后关闭命令行窗口

当前,生成步骤在执行“start BrowserStackLocal.exe-force”后不知道要做什么,因为它将等待回复代码


关于如何进入下一个构建步骤,您有什么想法吗?

您只需按
ALT
TAB
如果“BrowserStack”具有适当的启动-停止命令,则可以使用它们(例如Tomcat)。如果没有,则可以在中启动“BrowserStack”,然后运行测试,然后使用以下命令将其杀死:
-强制-杀死其他正在运行的BrowserStack Local实例

正如Alina所指出的,在运行测试之前,您需要设置一个“命令行”构建步骤,以便在后台启动BrowserStackLocal。配置如下:

Runner Type = Command Line
Run = Custom Script
Using 'advanced options' set Working directory where BrowserStackLocal is present if it differs from the checkout directory.
自定义脚本示例:

  • 适用于Linux/Mac

        #!/bin/bash
    
        ./BrowserStackLocal <BrowserStack Key> -force &
    
    !/bin/bash
    /本地-强制&
    
  • 窗户

        start /B BrowserStackLocal.exe <BrowserStack Key> -force 
    
    start/B BrowserStackLocal.exe-强制
    

在转移到Team City项目中的下一个生成步骤之前,您可以等待BrowserStackLocal进程启动。此外,您还可以设置生成后操作以终止正在运行的BrowserStackLocal进程。

最近也遇到了同样的问题,作为守护进程启动二进制文件将继续执行下一个生成步骤

打开连接:

browserstacklocal.exe --key %system.BrowserStackKey% --local-identifier %system.BrowserStackLocalIdentifier% --force --daemon start
browserstacklocal.exe --local-identifier %system.BrowserStackLocalIdentifier% --daemon stop
紧密连接:

browserstacklocal.exe --key %system.BrowserStackKey% --local-identifier %system.BrowserStackLocalIdentifier% --force --daemon start
browserstacklocal.exe --local-identifier %system.BrowserStackLocalIdentifier% --daemon stop

原始问题中的挑战是,跳转到TeamCity的下一个构建步骤。嗨,Alina,谢谢你的回答。这里的问题主要围绕TeamCity(CI)配置。需要知道如何在启动“命令行”运行程序类型的构建步骤后跳转到TeamCity中的另一个构建步骤。无法在TeamCity中运行并行构建步骤,请参阅相关的。我建议您在第一个命令行构建步骤的后台启动BrowserStack。一旦启动第二个构建步骤,就开始执行e-运行测试,并在第三个构建步骤中终止BrowserStack流程。在TeamCity中,第二个构建步骤在第一个步骤完成/失败之前不会启动(如果不退出第一个步骤,就无法启动第二个构建步骤)。一旦我们将BrowserStack作为TeamCity构建步骤1的一部分运行,它将永远继续运行。临时解决方案是:在后台手动运行BrowserStack,并从TeamCity构建步骤中删除相应的步骤。您是对的。我们已经以相同的方式实现了。这里的挑战是,TeamCity构建步骤不知道之后要做什么正在执行“start BrowserStackLocal.exe-force”,因为它将等待回复代码。在BrowserStackLocal运行时,它将永远无法跳转到要执行的测试中。您能否尝试以下操作:
start/B BrowserStackLocal.exe-force>output.txt
?我已在windows计算机上验证了这一点,并且它确实在后台运行该进程,我s非阻塞。请参阅:@vrkrishnan-如果此解决方案有效,请接受答案,或者如果您需要更多信息,请告诉我。