使用 Composer 为项目运行所有 PHPUnit 测试

Jer*_*auw 5 php testing continuous-integration phpunit composer-php

我有一组 PHP 项目,其中一些依赖于其他项目。都有 PHPUnit 测试。所有这些都可以通过 Composer 安装,并使用 composer.json 文件指定它们的依赖项。每个项目的根目录下都有一个 phpunit.xml.dist 文件,它指向一个 bootsrap 文件。

现在我有这个项目 Foo,它有许多直接依赖项和几个间接依赖项。对于 Foo 的 CI,我想运行它的所有测试,以及它的所有依赖项。

这是否可以通过 Composer 完成?如果没有,是否有一些标准的干净方法来做到这一点?

Dai*_*thí 5

你可以试试作曲家脚本

{
    "scripts": {
        "test": "phpunit"
    }
}
Run Code Online (Sandbox Code Playgroud)

或者创建一个makefile然后使用 composer 调用它

{
    "scripts": {
        "build-all": "make build-all"
    }
}
Run Code Online (Sandbox Code Playgroud)


Sve*_*ven 2

Composer 不会帮助您进行任何测试。

我怀疑这是否可以自动完成。您事先不知道任何所需库的测试位于何处。甚至可能这些测试未包含在已发布的库版本中,因为它们没有直接目的。

如果您知道所有库确实都在某个地方进行了测试,那么您必须自己编写一些代码来将所有这些测试收集在一个大的元测试套件中。但我想知道这些是否真的有帮助。

我将 CI 与 Jenkins 和一些内部库一起使用,并且当我更改所需库中的某些内容时,我将 Jenkins 设置为启动依赖库的测试。依赖图视图插件正在帮助管理这一点。