Junit动态创建的测试不起作用

时间:2010-06-18 21:55:55

标签: java dynamic junit runtime junit3

公共类NewTest扩展了SeleneseTestCase {

public static Test suite() throws Exception
{
   TestSuite suite = new TestSuite();

   TestSuite s = new TestSuite("TestCase Name");
      GeneratedTest t = new GeneratedTest("testName");
      t.setFailure("TestCase Name: testName");
      s.addTest(t);
      t = new GeneratedTest("testAge");
      s.addTest(t);
      suite.addTest(s);
   s = new TestSuite("TestCase Name2");
      t = new GeneratedTest("testOOGABOOGA");
      t.setFailure("TestCase Name2: testOOGABOOGA");
      s.addTest(t);
      suite.addTest(s);
   s = new TestSuite("TestCase Name4");
      t = new GeneratedTest("testName");
      t.setFailure("TestCase Name4: testName");
      s.addTest(t);
      t = new GeneratedTest("testAge");
      s.addTest(t);  
      suite.addTest(s);
   s = new TestSuite("TestCase Name3");
      t = new GeneratedTest("testName");
      t.setFailure("TestCase Name3: testName");
      s.addTest(t);
      t = new GeneratedTest("testAge");
      s.addTest(t);
      suite.addTest(s);

   return suite;
}

}


public class GeneratedTest extends TestCase
{
  public String testFailMessage;

  public GeneratedTest(String name)
  {
    ((TestCase)this).setName(name);
  }

  public void runTest()
  {
    if (testFailMessage != null)
    {
      fail(testFailMessage);
    }
  }

  public void setFailure(String msg)
  {
    testFailMessage = msg;
 }
}

正如您所看到的(或者您可能不会)我在运行时向junit添加测试。除了它没有正确显示它们之外,这一切都很精致和花花公子。在这里,看看我的意思:

click here for image

正如您所看到的,具有相同名称的测试甚至不会显示它们已被运行,除了上一次具有重复名称的测试,并且该测试具有来自所有其他具有相同名称的测试的错误消息

这只是一个我正在做的方式(junit3风格)的缺陷吗?我是否必须更改它以使用junit4参数化来修复它?

1 个答案:

答案 0 :(得分:0)

我在Eclipse的测试运行器中发现了类似的东西。对于JUnit 3.8样式参数化测试,名称未显示。切换到JUnit 4样式解决了这个问题。

虽然这不完全符合您的情况,但我认为在您将测试更新到JUnit 4之前,您必须要接受它.Eclipse确实仍然运行测试,这是重要的事情。