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

尝试将您的两个文件移动到另一个目录。

于 2011-06-22T17:10:22.887 回答
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 回答
0

似乎它在 Windows 上存在路径问题。我在 Linux 上测试了测试用例,效果很好。当我检查实际代码时,似乎存在从测试用例文件到嗅探文件的文件映射。但是在窗口上,文件被映射后,文件路径包含前向和后向斜杠的混合。但代码嗅探器不允许这样做。因此,它返回“找不到文件错误”。测试用例在 Linux 上运行良好。

于 2011-07-04T12:09:31.020 回答