如何将 Bluemix 构建和部署测试作业与 PHP 单元测试结合使用

How to use Bluemix Build and Deploy Test Job with PHP Unit Testing

我正尝试在 Bluemix 上为我的 PHP 应用程序设置构建和部署管道。我正在使用 PHPUnit 进行测试,但似乎无法让测试阶段调用 PHPUnit,因为它未安装。 Build 和 Deploy 阶段非常适合我,我只是想在它们之间添加一个测试阶段。问题是 PHP 甚至在测试阶段都没有安装。我快速 php -v 会给出命令未找到错误。我是否必须安装 php、apache、composer 和 phpunit 才能让这个测试阶段正常工作?有更好的方法吗?

根据我之前与 Bluemix DevOps 团队的讨论,您必须安装每个依赖项才能使测试阶段正常工作。

我最终安装了 apache、php7 和 composer 以使 php 单元正常工作。这是我 运行 在测试阶段的命令。我使用了一些 echo 和 ls 语句来帮助我调试安装。我的测试在我目录根目录的测试文件夹下,如 test/exampleTest.php,我让 php 单元创建一个名为 tests/Test 的 xml 输出文件。 xml 然后将该文件提供给询问 "Test Result File Pattern" 的框,这样 Bluemix 就可以读取该文件以了解测试是成功还是失败。

#!/bin/bash
# invoke tests here
echo "  adding repo"
sudo add-apt-repository ppa:ondrej/php
echo "  updating apt-get"
sudo apt-get -y update
echo " installing apache2"
sudo apt-get -y install apache2
echo " installing php7.0"
sudo apt-get -y --force-yes install php7.0 libapache2-mod-php7.0 php7.0-xml php7.0-cli php7.0-common php7.0-fpm php7.0-curl php7.0-gd php7.0-bz2
echo " PHP TESTING"
php -v
echo " PHP TESTING 2"
php -r 'echo "\n\nYour PHP installation is working fine.\n\n\n";'
echo "  downloading composer"
curl -sS https://getcomposer.org/installer | php
echo "  installing composer"
php composer.phar install
echo "  ls"
ls
echo "  ls ../"
ls ../
echo "  ls vendor"
ls vendor
echo "  running tests"
vendor/bin/phpunit --log-junit tests/Test.xml --bootstrap vendor/autoload.php tests