【问题标题】:Start Selenium RC server automatically自动启动 Selenium RC 服务器
【发布时间】:2011-12-07 09:09:31
【问题描述】:

当我运行 phpunit 测试时,如何自动启动和停止 Selenium RC 服务器?

我想我可以创建一个小 bash 脚本来做这样的事情(虽然不起作用):

java -jar ~/bin/selenium-server-standalone-2.0b3.jar &
phpunit --configuration suite.xml &&
killall java

肯定有办法做到这一点吗?让第一行在后台运行,第二个块执行直到完成。

或者还有其他好的方法吗? phpunit 有先运行进程的功能吗?

我觉得我需要完全自动化这个,因为如果我忘记启动服务器,phpunit 甚至不会抛出任何错误,它只是跳过测试!

【问题讨论】:

  • 尝试查看 xinetd。它可能会解决您的问题。
  • 从 java 命令返回 pid 并且只杀死那个 pid。

标签: bash selenium phpunit selenium-rc


【解决方案1】:

你想运行shell脚本、java还是php代码?

php 代码: exec("/path to file/script.sh");

java代码:进程p = Runtime.getRuntime().exec(/path to file/script.sh);

bat 文件也一样。 该脚本包含启动 selenium 服务器的命令或直接执行启动服务器的命令。请明确您的问题以及使用哪种语言??????

【讨论】:

  • php,因此是 phpunit。没想到直接从 php 运行该进程——这样可以。
  • 让我澄清一下你的问题,你想通过一些代码自动启动 selenium 服务器。您可以通过 php-unit 运行进程,因为我们使用 java-junit 与用于测试的 php-unit 相同的工具来执行该操作。在 Junit 中,我们使用注释来指定 Junit 应该执行哪些代码。同样,您可以在代码中添加注释以指定 phpunit 将运行它。
【解决方案2】:

(只是为了好玩)

TMPFILE=`mktemp` 
SELENIUMJAR=~/bin/selenium-server-standalone-2.0b3.jar

bash  -c  "echo $$ &&       java -jar  '${SELENIUMJAR}'" > "$TMPFILE" &
                            sleep 0.1                             
pid=`head -1 <              "$TMPFILE"`
phpunit   --configuration   suite.xml
kill      "$pid"   ;        sleep   2 
kill -9   "$pid"   ;        sleep 0.1 
rm        "$TMPFILE"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    相关资源
    最近更新 更多