5

在 Windows 7 机器上,如果我在终端中手动运行这样的 PHPUnit Selenium 命令:

phpunit --verbose --log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php

它会生成一个浏览器并很好地运行测试。然后它在屏幕上输出以下内容:

Time: 10 seconds, Memory: 3.50Mb
OK (1 test, 3 assertions)

并且终端保持打开状态。

现在,如果我将确切的命令复制并粘贴到一个空文件中并将其另存为test.bat并单击它,它也会运行测试。我可以看到浏览器打开并运行所有测试。唯一的问题是它会立即关闭终端提示符。所以我看不到上面的输出。

一个更大的问题是,因为如果我在最初的测试之后添加更多命令用于其他测试,它们不会运行,它会关闭终端。

我尝试添加:

pause

在 bat 文件的末尾,但没有运气,它仍然关闭。知道如何防止这种情况并能够在不关闭终端的情况下一个接一个地运行命令吗?

4

2 回答 2

11

您的问题与类似。尝试call在你的命令前面使用。如果您.bat从另一个.bat文件运行一个文件并且不使用call,则控制不会返回到第一个批处理文件,因此pause不会被执行。

于 2012-07-23T08:22:16.280 回答
0
  • 尝试cmd /K phpunit --verbose --log-junit _selenium_tests\results\home.xml _selenium_tests\frontend\home.php

    执行 string 指定的命令但保留中的/K选项,请参阅http://www.computerhope.com/cmd.htmcmd /K string

  • 另外,我不知道phpunit您执行的命令的文件类型 - 我不熟悉 selenium。如果它是批处理文件(即以 结尾.bat),您就不能从另一个批处理文件中调用它们:调用第二个批处理文件下面的所有内容将永远不会被执行。

    然后,您需要使用该CALL命令。CALL 使用户能够从另一个批处理文件中执行批处理文件
    请参阅http://www.computerhope.com/call.htm

于 2012-07-20T21:30:30.847 回答