通过Phing运行Yii框架测试

时间:2012-03-26 11:20:47

标签: yii phpunit jenkins phing

我正在使用yii框架,我构建了一些测试。 一个用selenium测试数据库和模型以及一个测试ui。

我尝试构建用于phing的xml文件来运行此测试(我使用Jenkins)。 但phing并不想将phpunit.xml作为配置。我的硒测试失败了。

这是使用phpunit - >

的日志
phpunit functional/signupTest.php 

PHPUnit 3.6.10 by Sebastian Bergmann.

Configuration read from /var/www/myProject/protected/tests/phpunit.xml

............

Time: 01:29, Memory: 6.00Mb

OK (12 tests, 0 assertions)

这是使用Phing进行相同测试的日志 - >

    Buildfile: /var/www/myProject/protected/tests/build.xml

myProject > test:

  [phpunit] Testsuite: signupTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 6, Incomplete: 0, Skipped: 0, Time elapsed: 0.05331 s
  [phpunit] testShow ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testCreate ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testUpdate ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testDelete ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testList ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testAdmin ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] Testsuite: SiteTest
  [phpunit] Tests run: 3, Failures: 0, Errors: 3, Incomplete: 0, Skipped: 0, Time elapsed: 0.02317 s
  [phpunit] testIndex ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testContact ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?
  [phpunit] testLoginLogout ERROR
  [phpunit] Invalid response while accessing the Selenium Server at 'http://localhost:4444/selenium-server/driver/': ERROR Server Exception: sessionId should not be null; has this session been started yet?

建立完成

总时间:0.2542秒

这是PHPunit.xml配置 - >

<phpunit bootstrap="bootstrap.php"
        colors="false"
        convertErrorsToExceptions="true"
        convertNoticesToExceptions="true"
        convertWarningsToExceptions="true"
        timeout="30000"
        stopOnFailure="false">

    <selenium>
        <browser name="Google Chrome" browser="*chrome" />
        <browser name="Firefox" browser="*firefox" />
    </selenium>

</phpunit>

这是build.xml(Phing)配置 - &gt;

<?xml version="1.0" encoding="UTF-8"?>
<project name="myProject" default="test">

        <target name="test" description="Launch PHPUnit Testing">
                <phpunit bootstrap="bootstrap.php" printsummary="false">
                        <formatter type="plain" usefile="false"/>
                        <batchtest>
                                <fileset dir=".">
                                        <include name="unit/Test.php"/>
                                         <include name="functional/*Test.php"/>
                                </fileset>

                        </batchtest>
                </phpunit>
        </target>        
</project>

如何对我的yii项目运行Jenkins测试?

1 个答案:

答案 0 :(得分:0)

这是一个猜测,我从未使用过Yii。

我猜测当你运行测试时,你会从tests文件夹中运行它们。另外,当你运行phing时,你从项目的根目录运行。

要修复我认为你需要告诉phing在tests文件夹中运行PHPUnit,而不是从根文件夹运行。