0

公共类 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 添加测试。这一切都很好,花花公子,只是它没有正确显示它们。在这里,看看我的意思:

点击这里查看图片

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

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

4

1 回答 1

0

我在 Eclipse 的测试运行程序中发现了类似的东西。对于 JUnit 3.8 风格的参数化测试,没有显示名称。切换到 JUnit 4 风格解决了这个问题。

虽然这不完全是您的方案,但我认为在您可以将测试更新到 JUnit 4 之前,您必须忍受它。Eclipse 仍然运行测试,这很重要。

于 2010-07-12T00:35:33.540 回答