我正在创建一个项目,我正在使用composer来获取所有依赖项。我也使用phpunit,我刚刚将我的项目迁移到phpunit 6.0。在此更改之前,我的phpunit始终正常工作。
在此之前,我使用的是5.7.13
版本。
我目前要求composer.json
中的包裹如下:
"require-dev": {
"phpunit/phpunit": "^6.0"
},
我让我的所有测试扩展\PHPUnit\Framework\TestCase
类而不是PHPUnit_Framework_TestCase
类。
我的配置保持不变,如下所示:
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit bootstrap="vendor/autoload.php"
color="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailures="false"
syntaxCheck="false">
<testsuites>
<testsuite name="Unit Tests">
<directory>./tests/bas/ProjectName/</directory>
</testsuite>
</testsuites>
</phpunit>
我的目录结构如下所示:
├───src
│ └───bas
│ └───ProjectName
│ └───... source files
├───tests
│ └───bas
│ └───ProjectName
│ ├───...test files like "ExampleTest.php"
在我的项目根目录中打开终端并输入phpunit
命令时,它会显示以下消息:
Sebastian Bergmann的PHPUnit 3.7.21。
从中读取配置 C:\ Users \用户巴斯\ Web_development \项目名\ phpunit.xml
时间:30毫秒,内存:4.00MB
没有执行测试!
我已经尝试将suffix="Test.php"
添加到phpunit配置中的directory
标记。
我还尝试从Composer中删除/vendor/
文件夹,然后通过composer update
命令重新安装软件包。
我的所有测试功能都以test
字开头。
使用the answer from John Smith我收到以下错误消息:
dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd)
# See if we are running in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
# Cygwin paths start with /cygdrive/ which will break windows PHP,
# so we need to translate the dir path to windows format. However
# we could be using cygwin PHP which does not require this, so we
# test if the path to PHP starts with /cygdrive/ rather than /usr/bin
if [[ $(which php) == /cygdrive/* ]]; then
dir=$(cygpath -m "$dir");
fi
fi
dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/phpunit" "$@"
答案 0 :(得分:1)
如果您正在使用作曲家来管理依赖关系,那么当您从项目的根目录运行phpunit
时,您可以执行全局和旧的phpunit二进制文件。
您只需运行测试:
Sebastian Bergmann的PHPUnit 3.7.21。
您应该使用命令php ./vendor/bin/phpunit
答案 1 :(得分:0)
尝试运行php "vendor/phpunit/phpunit/phpunit"