【问题标题】:TeamCity running bat file sucessfully but did not run the selenium testsTeamCity 成功运行 bat 文件但未运行 selenium 测试
【发布时间】:2015-12-31 21:17:23
【问题描述】:

TeamCity 运行我创建的批处理文件以运行我的 SpecFlow 测试时遇到问题。

批处理文件运行SpecRun.exe,我应该看到 Chrome 弹出并开始运行测试。 (这不是本地应用程序,因此无需运行 IIS 等。)测试是针对站点运行的 selenium 测试。从命令行运行批处理文件时,一切都按预期工作。

我在 TeamCity 中有一个构建步骤,它通过命令行构建步骤运行批处理文件。但是当我运行构建步骤时,我在日志中得到Success,它告诉我批处理文件已运行,但没有弹出 Chrome 窗口,也没有实际运行测试。

我的批处理文件内容是:

cd C:\Users\carlb\Documents\Visual Studio 2015\Projects\SITS_Automation\packages\SpecRun.Runner.1.2.0\tools
start SpecRun.exe run ../../SITS_Automation/default.srprofile /report:../../SITS_Automation/TestResults/SITS_Report.html

我的批处理代码中可能有什么错误导致硒测试未完成?

【问题讨论】:

    标签: .net batch-file selenium teamcity specflow


    【解决方案1】:

    启动命令启动 SpecRun 和另一个进程中的任何其他程序,因此不等待它完成。 删除 start 或向其添加 /WAIT 参数。

    【讨论】:

      【解决方案2】:

      设置当前目录的路径包含一个空格。

      因此你需要

      cd "C:\Users\carlb\Documents\Visual Studio 2015\Projects\SITS_Automation\packages\SpecRun.Runner.1.2.0\tools"
      

      甚至更好

      cd /D "%USERPROFILE%\Documents\Visual Studio 2015\Projects\SITS_Automation\packages\SpecRun.Runner.1.2.0\tools"
      

      通过在命令提示符窗口中运行cmd /? 可以在最后一页输出中读取带有空格 或以下字符之一的字符串&()[]{}^=;!'+,`~ 必须用双引号引起来。

      使用选项/D 命令CD 还会切换到与当前驱动器不同的驱动器上的目录。并且预定义的环境变量USERPROFILE 包含当前用户配置文件目录的路径。

      如果SpecRun 是一个控制台应用程序,则删除命令start,以便在同一命令进程中运行此应用程序,并暂停批处理文件的执行,直到此控制台应用程序自行终止。

      但如果 SpecRun 是一个 GUI 应用程序,请使用

      start "SpecRun" /wait SpecRun.exe run ..\..\SITS_Automation\default.srprofile /report:..\..\SITS_Automation\TestResults\SITS_Report.html
      
      双引号中的

      "SpecRun" 只是一个窗口 title 字符串,对于空字符串也可以只是 "" 或在此命令行中完全省略,因为没有其他参数包含在双引号中引号。如果 start 行上的任何字符串用双引号括起来,则可选的 title 通常是必需参数,因为命令 start 通常将第一个双引号字符串解释为标题字符串。因此,如果 start 只是一个空字符串,则在使用时指定一个标题字符串会更安全,以避免意外行为。

      您还应该在目录或文件的路径中使用 \ 而不是 /,因为反斜杠是 Windows 上的目录分隔符,而不是 Unix/Linux/Mac 上的正斜杠。命令处理器cmd.exe 在执行批处理文件时将文件和目录路径中的正斜杠替换为反斜杠。但是,为 Windows 指定具有正确目录分隔符的文件和文件夹路径会更好,除非启动的应用程序需要正斜杠,因为从 *nix 移植到 Windows(很糟糕)。

      要了解所使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

      • cd /?
      • start /?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多