0

特定のテスト スイートを実行すると、

phpunit --testsuite LibTests

期待どおりの結果が得られます (テストに合格)。ただし、「phpunit」を実行すると、次のようなエラーが表示されます。

Fatal error: Call to a member function rss_feed_url() on a non-object in /Users/Shared/Jenkins/Home/jobs/Fanpilot_CT_3.0/workspace/tests/libs/VoltampMediaRSSFeedTest.php on line 20

ここで、rss_feed_url() は setup() にロードしたクラスのメソッドです。

ここに私のphpunit.xmlファイルのスニペットがあります

<testsuites>
    <testsuite name="LibTests">
      <directory suffix=".php">tests/libs</directory>
    </testsuite>
</testsuites>

前もって感謝します!

4

2 に答える 2

1

問題は、$this->CI を適切なコントローラーに再初期化していなかったことです。前回のテストから古くなっています。すべての setUp()m で、次のように $this-CI を確実に初期化する必要があります。

$this->CI = set_controller();

私の場合、カスタム MY_Controller (applications/core/My_Controller.php) があります。したがって、カスタム コントローラーを活用する必要がある場合は、これを行うことができます。

$this->CI = set_controller('MY_Controller');

補足として、CIU_Loader メソッド _ci_load_class 内で get_class と get_parent_class の両方をダンプすることで、最終的にそれを理解しました。これらの値は、単一のテストとして実行したか、すべてとして実行したかによって異なることに気付きました。

于 2013-04-23T07:25:27.077 に答える