2

私はこの出力を持っています:

---------- snippet start ----------
JUnit version 4.11
I.E
Time: 0.015
There was 1 failure:
1) testPerson(PersonTest)
org.junit.ComparisonFailure: expected:<John[1]> but was:<John[]>
    at org.junit.Assert.assertEquals(Assert.java:115)
    at org.junit.Assert.assertEquals(Assert.java:144)
    at PersonTest.testPerson(PersonTest.java:21)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)

---------- snippet end----------

そして、各行の先頭に「at」という単語が含まれていない行のみを取得したいのですが、「PersonTest.java」という単語を含む行 (「at」を含む) は含まれません。どうもありがとうございました!

4

3 に答える 3

0

つまり、テスト クラス自体に関するものを除いて、すべてのスタック トレース行を除外する必要がありますよね?!

/をサポートするGNU など、否定先読みをサポートする正規表現エンジンが必要です。grep-P--perl-regexp

grep -v -P '^ *at (?!.*PersonTest)' output

-vこれにより、で始まりat、が後に続かないすべての行が除外されます ( ) PersonTest

于 2013-05-31T06:33:47.297 に答える