代码之家  ›  专栏  ›  技术社区  ›  markovuksanovic

从JAVA程序运行JunIT4测试

  •  1
  • markovuksanovic  · 技术社区  · 14 年前

    我想知道如何在JAVA程序中运行一些JunIT4测试。基本上-根据运行时的某些条件,我需要决定使用哪个测试运行程序。使用JUnit3,我可以覆盖来自TestCase类的RunTest方法-但是在JUnit4中,测试不扩展TestCase类,所以我没有什么要覆盖的…也许有什么方法我需要实现…或其他…

    2 回复  |  直到 12 年前
        1
  •  0
  •   lexicore    14 年前

    下面是一些示例代码:

    public void checkTests() throws org.junit.runners.model.InitializationError {
        checkTestClass((Class<?>) MyTestClss.class);
    }
    
    private void checkTestClass(Class<?> theClass) throws InitializationError {
        final RunNotifier notifier = new RunNotifier();
        notifier.addListener(new RunListener() {
            @Override
            public void testFailure(Failure failure) throws Exception {
                Assert.fail(failure.getMessage());
    
            }
        });
    
        final Runner runner = new BlockJUnit4ClassRunner(theClass);
    
        runner.run(notifier);
    }
    
        2
  •  0
  •   Neel    12 年前

    我遇到的问题是,我必须在每个测试用例之前运行一个方法(不能是静态的)

    如果这个非静态方法与预先处理测试用例有关,可以通过使用 @Before 在你的测试课上。查看junit4文档,了解 @以前 .

    否则,为了简单地触发junit测试类,可以使用以下代码:

    Runner r = 
    try {
      r = new BlockJUnit4ClassRunner(Class.forName(testClass));
    } catch (ClassNotFoundException | InitializationError e) {  // FIX if necessary: JDK 7 syntax
      // handle
    }
    JUnitCore c = new JUnitCore();
    c.run(Request.runner(r));
    

    希望能有所帮助。