9

私は、Jenkins をセットアップして、CakePHP プロジェクトで単体テスト/コード カバレッジを構築および実行するための初めての試みの真っ最中です。これまでのところ、Jenkins が BitBucket リポジトリから自動的にフェッチしてビルドすることに成功しました。それ自体は小さな勝利です。

次に実現したいことは、単体テストを実行し、コード カバレッジ レポートを作成することです。

これは私のbuild.xmlで、(唯一の)buildコマンドを使用してJenkinsで実行されていますphing -f $WORKSPACE/build.xml

<?xml version="1.0" encoding="UTF-8"?>
<project name="Consumer Love" default="phpunit">
    <target name="phpunit">
        <exec command="cake test app --coverage-clover logs/reports/clover.xml"></exec>
    </target>
</project>

問題は、実行するときに実行する特定のテストのプロンプトを要求することだと思います.CakePHPアプリのユニットテストをすべてcake test app実行する方法を見つけられませんでした.

4

2 に答える 2

12

解決策は、テストする特定のファイル/ディレクトリを追加するカスタムCakePHP テスト スイートを作成し、そのスイートをコマンドで実行することcake test app AllTestsでした。

たとえば、ここに私のがありますTest/Case/AllTests.php

/*
 * Custom test suite to execute all tests
 */

class AllTestsTest extends PHPUnit_Framework_TestSuite {

    public static function suite() {

        $path = APP . 'Test' . DS . 'Case' . DS;

        $suite = new CakeTestSuite('All tests');
        $suite->addTestDirectory($path . 'Model' . DS);
        return $suite;

    }

}

Modelsこのテスト スイートはディレクトリをテスト環境に追加するだけなので、すべてのモデル テストが実行されるようになります。ご覧のとおり、適切と思われるテストをさらに/すべて実行するように拡張できます。

于 2012-07-09T16:35:27.140 に答える
0

試してみてくださいcake test app all。これが違いを生むことは今のところ確認できませんが、あなたと同じことをしているphingビルドファイルからこれを引き出したので、良いはずです.

于 2012-07-09T01:42:42.227 に答える