如何为PHP_Codesniffer标准创建PHP-UnitTest案例?`

时间:2011-06-22 10:33:57

标签: php phpunit codesniffer

我已经创建了自己的codeniffer规则标准。他们工作正常。现在我想使用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

它在给定位置找不到错误文件{{1}}。我已经给予文件夹的完全权限,也验证了路径和文件位置,但它给出了同样的错误。我也在linux机器上测试了它,但它也给出了同样的错误。

这是我的代码问题还是代码单元测试框架问题?

3 个答案:

答案 0 :(得分:1)

我在 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

答案 1 :(得分:1)

您的文件是否位于顶级testsCodeSniffer目录中?请注意,您要扩展的抽象测试用例位于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 :(得分:0)

它似乎在Windows上有路径问题。我在Linux上测试了测试用例,它运行正常。当我检查实际代码时,似乎有从测试用例文件到嗅探文件的文件映射。但是在窗口上,在文件被映射之后,文件路径包含正向和放大的混合。落后的板条。但是代码不允许这样做。因为它返回“找不到文件错误”。测试用例在Linux上正常运行。