我是詹金斯的新手。我尝试在这个website上使用ci。如果我构建我的项目,我得到以下consol输出错误
phpunit:
[exec] PHPUnit 3.7.28 by Sebastian Bergmann.
[exec]
[exec] Cannot open file "/var/www/repo/project/protected/tests/bootstrap.php".
[exec]
BUILD FAILED
/var/www/repo/build.xml:117: exec returned: 1
我的build.xml
<target name="phpunit" description="Run unit tests with PHPUnit">
<exec executable="phpunit" failonerror="true">
<arg line="--log-junit ${basedir}/build/logs/phpunit.xml /var/www/repo/project/protected/" />
</exec>
</target>
我的项目结构是这样的:
-repo
-project
-protected
-components
-config
- ....
- tests
- unit
- bootstrap.php
- ReflectionTest.php
-build
-....
-build.xml
-phpunit.xml.dist
我正在使用带名称空间的Yii-Framework。如果我从tests目录执行phpunit命令它工作得很好。但如果我在其他地方执行它,我会收到这样的错误:
PHP Fatal error: Class 'application\tests\ReflectionTest' not found in /var/www/repo/project/protected/tests/unit/account/manager/ManagerTest.php on line 13
这是我的测试:
<?php
namespace application\tests\unit\account\manager;
use application\modules\account\manager\Manager;
use application\models;
use Yii;
use application\tests\ReflectionTest;
/**
* This class test the protected and public methods of SignupManager
*/
class ManagerTest extends ReflectionTest {
这是我的phpunit.xml.dist
<phpunit bootstrap="project/protected/tests/bootstrap.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false">
<selenium>
<browser name="Internet Explorer" browser="*iexplore" />
<browser name="Firefox" browser="*firefox" />
</selenium>
<testsuites>
<testsuite name="Project Test Suite">
<directory>project/protected/tests/*</directory>
</testsuite>
</testsuites>
</phpunit>
我的错误在哪里?
答案 0 :(得分:0)
我使用phpunit.xml文件位置的相对路径来引用我的引导程序文件。像这样:
<phpunit bootstrap="bootstrap.php"
colors="false"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
stopOnFailure="false">
答案 1 :(得分:0)
我在github上为Yii创建了一个示例项目。在那里你可以看到设置应该如何让phpunit正常工作。查看https://github.com/perlmonkey/yii-sample-project
此外,您必须注意所有相关的PHPUnit模块都可用于测试。这就是为什么我创建了一个自动脚本来为我配置Jenkins:https://github.com/perlmonkey/php-ci