6

テスト実行から無視したい PHPUnit Test クラスがあります。ファイル名にTestという単語が含まれないように名前を変更することでそれができることは知っていますが、ソース管理の水域を必要以上に汚すので、そうしないほうがよいでしょう。

誰か提案がありますか?

4

5 に答える 5

15

phpunitコマンドには、実行するテストと実行しないテストを定義するのに役立つオプションがいくつかあります。

$ phpunit --help
PHPUnit 3.4.0beta5 by Sebastian Bergmann.

Usage: phpunit [switches] UnitTest [UnitTest.php]
       phpunit [switches] <directory>
...
  --filter <pattern>       Filter which tests to run.
  --group ...              Only runs tests from the specified group(s).
  --exclude-group ...      Exclude tests from the specified group(s).
  --list-groups            List available test groups.
...

それらはおそらくあなたが望むものを正確に指定することを許可しないでしょう...しかしそれらは役立つかもしれません。

詳細については、コマンドラインテストランナーを参照してください。


特に、私はグループ機能が好き@groupです。テストのphpdocでタグを使用して、テストを再グループ化します(たとえば、「機能のチャンク」ごとに1つのグループ)。その後、コマンドラインの--groupまたは--exclude-groupオプションを使用して、実行するテストと実行しないテストを指定できます。

あなたの場合、テストを変更できない場合は、テストの名前の付け方に応じて(つまり、実行するテストを識別する方法がある場合)、-filterオプションが役立つ可能性があります

--filter
名前が指定されたパターンと一致するテストのみを実行します。パターンは、単一のテストの名前、または複数のテスト名に一致する正規表現のいずれかです。


実行するテストの「グループ」を常に変更するわけではない場合の別の解決策は、実行するテストのみを含むテストスイートを使用することです。

たとえば、XML構成を使用したテストスイートの作成を見てください。

于 2009-09-12T10:37:39.020 に答える
6

メソッドの名前を変更するだけです:

testFunctionality () { //何とか}

ignore_ testFunctionality () { //何とか}

于 2011-04-18T13:33:34.190 に答える
4

これは受け入れられた回答のある古い質問であることを認識しているので、邪魔にならないように願っていますが、テストをスキップできることを完了のために指摘したかっただけです。不完全でスキップされたテストは、PHPUnit によって実行されません。

もちろん、これはテストごとのレベルですが、クラスに入れることで統合できますsetUp()

ただのヘッズアップ。

于 2010-04-21T13:46:06.623 に答える
1

PHPUnitのマニュアル全体を検索しましたが、何も見つかりませんでした。テスト カバレッジの目的でコードを無視することはできますが、それだけです。ただし、このChangeLog (明らかなフォーク) は、「接頭辞が付いたテスト ファイル名を無視する」と述べています.。試したことはありませんが、試してみる価値はあります。または、テストをコメントアウトすることもできます。無視されたテストを報告する NUnit オファーのようなものが欲しいと思います。そのようなものは見つかりませんでした。

于 2009-09-12T01:32:50.407 に答える