1

何らかの理由で、同じ環境内の他のクラスに対していくつかの同様のテストをセットアップして動作させても、SimpleTest はテスト関数を実行していませんが、テストが実行できないと言っているわけではありません。私が受け取るメッセージは次のとおりです(緑色の成功ストリップ内):

FormControllerTest.php
0/1 テスト ケースが完了しました: 0 件の合格、0 件の失敗、および 0 件の例外。

したがって、1 つのテスト ケースがあることがわかりましたが、それは実行されていませんが、エラーもスローされていません。

テストケースを次のような最も単純なものに減らしました。

require_once(dirname(__FILE__) . '/simpletest/autorun.php');
require_once(dirname(__FILE__) . '/../FormController.php');
class FormControllerTest extends UnitTestCase {

    function shouldFail() {
        $this->assertFalse(true);
    }

}

なぜこれが機能しないのか理解できません。なぜ私のテストが実行されないのかについて、誰か提案がありますか?

どうもありがとう

4

2 に答える 2

2

テスト関数が実行されていない理由を見つけました。

SimpleTest Webサイトのこのページによると:

テストケースがオートランナーによって呼び出されると、「test」という名前で始まるメソッドが検索されます。

したがって、上記の関数の名前を変更するとすぐにtestShouldFail()、テストが見つかり、正しく失敗しました。

それが誰かを助けることを願っています。

于 2011-09-02T11:05:13.733 に答える
0

requireをクラスコンストラクター内に配置してみてください。

class FormControllerTest extends UnitTestCase {

    function __construct() {
        require_once(dirname(__FILE__) . '/simpletest/autorun.php');
        require_once(dirname(__FILE__) . '/../FormController.php');
    }

    function shouldFail() {
        $this->assertFalse(true);
    }

}
于 2011-09-02T10:19:02.977 に答える