3

私はこの設定を持っています:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit
    backupGlobals               = "false"
    backupStaticAttributes      = "false"
    colors                      = "false"
    convertErrorsToExceptions   = "true"
    convertNoticesToExceptions  = "true"
    convertWarningsToExceptions = "true"
    processIsolation            = "false"
    stopOnFailure               = "false"
    stopOnError                 = "false"
    stopOnIncomplete            = "false"
    syntaxCheck                 = "false"
    bootstrap                   = "test_bootstrap.php"
    >

  <testsuites>
      <testsuite name="UnitTests">
          <file>unit/api/2/ApiControllerTest.php</file>
          <file>unit/api/2/RoutesTest.php</file>
   </testsuite>

テストファイルを実行します。ファイルを次のように置き換えると

<directory>unit</directory>
// or
<directory>unit/api/2</directory>
// or
<directory>unit/api/2/*</directory>
// or
<directory>unit/api/2/*Test.php</directory>
// or
<directory suffix="Test.php">unit/api/2</directory>

それは単に言う:テストは実行されません!

何が悪いのでしょうか?

Ubuntu 12.04 LTS、php 5.3.10、phpunit 3.7.16

4

3 に答える 3

2

ディレクトリからの相対パスのどこにunitphpunit.xml ファイルがありますか?

パスが次のようになっている場合:

projectroot
|- phpunit.xml
|- unit/
   |- api/

でディレクトリを次のように設定してみてくださいphpunit.xml

<directory>./unit</directory>

次に、次のようにルートから phpunit を実行します。phpunit -c phpunit.xml

それがうまくいかない場合は、何か他のことが間違っています。これを実行するとどうなりますか:

phpunit ./unit/api/2

テストが実行されていない場合は、次の質問に答えてください。

  • テストケースのメソッドが「test」で始まっていない可能性がありますか?
  • すべてのテストケース ファイルは Test.php で終わりますか?
  • すべてのテストケース クラスは PHPUnit_Framework_TestCase を拡張しますか?
  • テストケースのクラス名はすべて「Test」で終わりますか?
于 2013-03-12T14:29:57.033 に答える
1

PHPUnit の suffix 属性のデフォルトは「Test.php」ですが、これはすぐにはわからないかもしれません。テストでこのサフィックスを使用しない場合 (たとえば、UserTest.php の代わりに TestUser.php または /test/User.php を使用する場合)、テストはスキップされます。

ターゲットディレクトリが存在することが確実な場合は、ファイルが PHPUnit で使用される選択されたサフィックスと一致することを確認してください。

于 2016-07-13T20:12:44.467 に答える