gpt4 book ai didi

php - 如何将 ZF2 单元/应用程序模块测试整合到单个调用中?

转载 作者:可可西里 更新时间:2023-11-01 13:28:19 27 4
gpt4 key购买 nike

我遵循在模块中存储测试的 ZF2 惯例,当从每个模块内运行测试时,一切正常。我想要做的是拥有一个根级别的 phpunit.xml,它调用各个模块测试并整合它们以生成代码覆盖率数据和其他指标。

问题是每个单独的测试套件都是在模块化的 phpunit.xml 文件中引导的。我知道做事的唯一方法是在每个 phpunit.xml 文件中配置 Bootstrap ,当从根目录运行测试时显然不会被拾取,因为忽略了单个 xml 文件。

所以我的问题是:有没有办法让根级 phpunit.xml 文件从模块中读取单独的 phpunit.xml 和引导文件,如果你愿意的话,这是一种 phpunit 配置继承?我可以沿着 Phing 或 CI 脚本编写这个的路线,但我希望它在开发过程中快速而肮脏地完成,并且这个解决方案仍然不会生成合并的代码报告。

基本上,我想要这样的东西,但不是运行测试,我希望它在每个模块中运行单独的 phpunit.xml 文件。这可能吗?

<?xml version="1.0" encoding="UTF-8"?>

<phpunit>
<testsuites>
<testsuite name="Site Tests">
<directory>./module/Application/test/ApplicationTest</directory>
<directory>./module/User/test/UserTest</directory>
</testsuite>
</testsuites>
</phpunit>

更新

目标是让 PHPUnit 生成的代码指标给出项目概览,而不是特定于模块的概览。我很欣赏答案中的脚本将在每个模块的基础上运行单元测试,但这不是我想要的。我知道就 PHPUnit 而言,这可能是一个限制。在接下来的几天里,我将研究这个问题并尝试找到一个解决方案,因为它似乎对许多处理自定义模块的项目很有用。

更新 2

Robert Basic 提出了一个脚本,该脚本创建了一个目录结构,其中包含模块报告,它工作得很好,但最好让它在 PHPUnit 中运行并提供适当的指标报告。

https://gist.github.com/robertbasic/5329789

最佳答案

如果您使用的是 Linux,您可以创建一个简单的脚本。不完全是您想要的解决方案,但仍然可以提供帮助:

#!/bin/sh

modDir=$(pwd)
for i in *; do

if [[ -d $i/test ]]; then
cd $i/test
phpunit
cd $modDir
fi
done

您可以将其放入模块目录中的 runtests.sh 文件中。

只是一个想法:)

关于php - 如何将 ZF2 单元/应用程序模块测试整合到单个调用中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15860702/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com