【问题标题】:Contiperf2 not working with my existing JUnit test caseContiperf2 不适用于我现有的 JUnit 测试用例
【发布时间】:2016-05-23 13:10:25
【问题描述】:

对于性能测试,我正在尝试将 Contiperf http://databene.org/contiperf 与我的 JUnit 测试用例一起使用

独立测试类 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

【问题讨论】:

  • 您使用的是什么版本的 junit 和 contiperf?我的测试用例也有同样的问题。它适用于 junit 4.10,但不适用于 4.12。我假设 4.7 和 4.10 之间的任何 junit 版本都是受支持的。有一次,当我将 junit 版本降级到 4.10 时,它起作用了。希望有帮助!

标签: java performance-testing junit4 contiperf


【解决方案1】:

JUnit 4.12 应用该字段重命名,PR 修复它was sent a long time ago

我建议您使用 version 2.4.3 进行更改并且已经在 maven Central 上。

请注意,依赖组已更改,但除了更改导入之外,代码应保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-08
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2017-04-09
    • 1970-01-01
    相关资源
    最近更新 更多