我已经创建了自己的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机器上测试了它,但它也给出了同样的错误。
这是我的代码问题还是代码单元测试框架问题?
答案 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)
您的文件是否位于顶级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 :(得分:0)
它似乎在Windows上有路径问题。我在Linux上测试了测试用例,它运行正常。当我检查实际代码时,似乎有从测试用例文件到嗅探文件的文件映射。但是在窗口上,在文件被映射之后,文件路径包含正向和放大的混合。落后的板条。但是代码不允许这样做。因为它返回“找不到文件错误”。测试用例在Linux上正常运行。