3

パフォーマンス テストのために、JUnit テストケースでContiperf http://databene.org/contiperfを使用しようとしています。

独立したテスト クラス contiperf で動作します。

しかし、既存の合格テスト ケースで Contiperf を使用すると、機能しません。

    import org.databene.contiperf.junit.ContiPerfRule;
    import org.databene.contiperf.junit.ContiPerfSuiteRunner;
    import org.junit.Rule;        

    public class TU_XSL_OrderDlt extends TranslatorUtls  {

                @Rule
                public ContiPerfRule i = new ContiPerfRule();
                @Test    
                @PerfTest(invocations = 1, threads = 1) 
                public void testNormalTranslation() throws Exception {

               assertTranslation("testdata/OrderDeltInput.xml", "testdata/OrderDltOutput.xml");
            }

        }

次の例外が発生します:

java.lang.RuntimeException: java.lang.NoSuchFieldException: fNext
    at org.databene.contiperf.junit.ContiPerfRule.apply(ContiPerfRule.java:176)
    at org.junit.runners.BlockJUnit4ClassRunner.withMethodRules(BlockJUnit4ClassRunner.java:365)
    at org.junit.runners.BlockJUnit4ClassRunner.withRules(BlockJUnit4ClassRunner.java:355)
    at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:278)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.NoSuchFieldException: fNext
    at java.lang.Class.getDeclaredField(Class.java:2070)
    at org.databene.contiperf.junit.ContiPerfRule.apply(ContiPerfRule.java:166)
    ... 17 more
4

1 に答える 1

1

JUnit 4.12 はそのフィールドの名前変更を適用します。それを修正するための PRはずっと前に送信されました

変更があり、すでにmaven centralにあるバージョン2.4.3を使用することをお勧めします。

依存関係グループが変更されていることに注意してください。ただし、インポートを変更する以外は、コードは同じままにする必要があります。

于 2019-01-30T23:53:10.537 に答える