我找不到解决方案,有不同的方法可以做到这一点,但我只是想知道我是否可以这样做:
Project
| - config
| - data
| - module
| | - Application
| | | - config
| | | - src
| | | - test <---------------------unit test for each module
| | | | - ApplicationTest
| | | | - Bootstrap.php
| | | | - phpunit.xml
| | | | - TestConfig.php.dist
| | | - view
| | | - Module.php
| | - Album
| | | - config
| | | - src
| | | - test
| | | | - AlbumTest
| | | | - Bootstrap.php
| | | | - phpunit.xml
| | | | - TestConfig.php.dist
| | | - view
| | | - Module.php
| - public
| - vendor
| - tests <------------------centralize launch of all tests for reporting on Jenkins
| build.xml <----------------This file launch phpunit.xml in ./tests/phpunit.xml
在root的测试目录中,我想放置一个xml用于启动每个模块的每个单元测试,并为Jenkins创建一个报告文件。 我看了很多教程,包括:
堆栈溢出中的或问题,但不是我想要的东西:
zf2 + phpunit + multiple module + CI
在堆栈上,有这个问题,但我尝试了,但它无法正常工作:Zend Framework 2 Unit Tests on Jenkins not working
感谢您的帮助
编辑[2014年3月24日 - 12:25]:我终于找到了一种方法,它将Bootstrap.php,TestConfig.php放在测试目录中。
Project
| - config
| - data
| - module
| | - moduleName1
| | | - config
| | | - src
| | | - test <---------------------unit test for each module
| | | | - ApplicationTest
| | | - view
| | | - Module.php
| | - moduleName2
| | | - config
| | | - src
| | | - test
| | | | - moduleName2Test
| | | - view
| | | - Module.php
| - public
| - vendor
| - tests
| | -phpunit.xml <-------- Jenkins fail here
| | -Bootstrap.php
| | -TestConfig.php
| build.xml <----------------This file launch phpunit.xml in ./tests/phpunit.xml
我的phpunit.xml代码如下:
<phpunit bootstrap="Bootstrap.php" colors="true"
stopOnError="true"
stopOnFailure="false"
strict="true"
verbose="true">
<testsuites>
<testsuite name="All">
<directory>../module/moduleName1/test/moduleName1Test</directory>
<directory>../module/moduleName2/test/moduleName2Test</directory>
</testsuite>
</testsuites>
<logging>
<log type="coverage-html" target="../build/coverage/" charset="UTF-8"
yui="true" highlight="false"
lowUpperBound="35" highLowerBound="70"/>
<log type="coverage-clover" target="../build/logs/clover.xml"/>
<log type="junit" target="../build/logs/junit.xml" logIncompleteSkipped="false"/>
</logging>
</phpunit>
并且,在行命令中,报告文件正确生成,我的断言很好,一切都很完美。
但是,有一件小事让我发疯!我无法找到我必须在build.xml上编写什么命令,使用jenkins启动phpunit.xml我尝试了很多东西,jenkins继续说:
Total tests run: 0, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00100 s
我确定我的phpunit.xml已加载,但它根本不起作用......任何想法?
答案 0 :(得分:0)
问题终于解决了:
build.xml中的放置了phpunit.xml的完整路径:
<target name="phpunit" description="Launch unit testing">
<echo msg="Start Unit testing" />
<exec command="phpunit.bat --configuration=C:/wamp/www/myProject/tests/phpunit.xml" />
</target>
如果没有,你可以:
[exec] Could not read "./tests/phpunit.xml".
jenkins很高兴!
[exec] [30;42m[2KOK (4 tests, 4 assertions)