我正在为PHPUnit编写 Vim 编译器插件。
我已经编写了下面的错误格式代码。
我已经编写了下面的错误格式代码。
errorformat
已经成功提取了错误信息,但是文件和行号没有被正确提取。CompilerSet errorformat=%E%n)\ %.%#,
\%C%m,
\%+C%$,
\%C%f:%l,
\%Z%$
PHPUnit的输出大致是这样的:
PHPUnit 3.5.12 by Sebastian Bergmann.
............................................................... 63 / 134 ( 47%)
.........................E.....
Time: 0 seconds, Memory: 11.25Mb
There was 1 error:
1) SomeClassTest::testSomething
Undefined property: SomeClass::$var
/path/to/SomeClass.php:99
/path/to/SomeClassTest.php:15
FAILURES!
Tests: 94, Assertions: 170, Errors: 1.
Press ENTER or type command to continue
我希望报告的文件和行号可以是堆栈跟踪中的第一项或最后一项。最深层的调用是问题实际发生的源头。跳转到顶级调用意味着我可以使用 to step down into the call stack
逐级跟踪调用堆栈。在上面的例子中,我更倾向于选择后者,即 SomeClassTest.php:15
。
%+C%$
总是会在%Z%$
之前匹配,因此多行消息从未被正确“关闭”。 - IlkkaSomeClass.php:99
)。当常见测试函数被多个测试调用时,这使得诊断问题变得困难。使用第一个函数调用(列表中的最后一个 -SomeClassTest.php:15
)会更有用,因为C-]
允许您进入没有运行时堆栈信息的调用。 - afternoon%Q
而不是%G
,呵呵。 - Ilkka