6

私は独自のコードスニッファー ルール標準を作成しました。それらは正常に機能しています。次に、PHP UnitTest を使用してコードスニッファー ルールをテストします。PhpCodesniffer には、PHPUnit テスト ケースのフレームワークが既にあります。

したがって、それを使用してAbstractSniffUnitTest、場所とユニットテストクラスを 拡張し、テストStandards/TestRules/Tests/Function/FunctionUnitTest.php対象のスクリプトを に保持しましたStandards/TestRules/Tests/Function/FunctionUnitTest.inc

しかし、コマンドphpunit PEAR\PHP\tests\AllTests.phpでスクリプトを実行しようとすると、次のエラーが発生します。

PHPUnit 3.5.14 by Sebastian Bergmann.

......................................F

Time: 6 seconds, Memory: 10.00Mb

There was 1 failure:

1) TestRules_Tests_Function_FunctionUnitTest::getErrorList
An unexpected exception has been caught: Source file C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc does not exist

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php:138
C:\Program Files\PHP\PEAR\PHP\tests\TestSuite.php:48

FAILURES!
Tests: 39, Assertions: 146, Failures: 1.

Warning: Deprecated PHPUnit features are being used 2 times!
Use --verbose for more information.

FunctionUnitTest.inc指定された場所にファイルが見つからないというエラーが表示されます。フォルダーに完全なアクセス許可を与え、パスとファイルの場所も確認しましたが、同じエラーが発生します。Linux マシンでもテストしましたが、同じエラーが発生します。

それは私のコードの問題ですか、それともコードスニッファーのユニットテスト フレームワークの問題ですか?

4

3 に答える 3

1

ファイルは最上位testsまたはCodeSnifferディレクトリにありますか? 拡張している抽象的なテストケースが含まれていることに注意してくださいtests

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php

しかし、からのファイルを含めようとしていますCodeSniffer:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc

2 つのファイルを別のディレクトリに移動してみてください。

于 2011-06-22T17:10:22.887 に答える
0

Windowsでパスの問題があるようです。Linuxでテストケースをテストしましたが、正常に動作します。実際のコードを確認したところ、テストケースファイルからスニフファイルへのファイルマッピングがあるようです。しかし、ウィンドウでは、ファイルがマップされた後、ファイルパスに順方向と逆方向のスラッシュが混在していますが、codesnifferはこれを許可しません。そのため、「ファイルが見つかりません」というエラーが返されます。Linuxではテストケースが正常に実行されています。

于 2011-07-04T12:09:31.020 に答える
0

i の近くにスペースi ncがあります。タイプミスかどうかを確認し、修正してください。動作するはずです。これ以外に問題は見当たりません。

変化する:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/ FunctionUnitTest.i nc

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/ FunctionUnitTest.inc

于 2011-06-22T11:28:16.093 に答える