Динамически созданные тесты Junit не работают - PullRequest
0 голосов
/ 19 июня 2010

открытый класс 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, чтобы исправить это?

1 Ответ

0 голосов
/ 12 июля 2010

Я заметил нечто похожее в тесте Eclipse. Для параметризованных тестов в стиле JUnit 3.8 имена не отображались. Переход на стиль JUnit 4 решил проблему.

Хотя это не совсем ваш сценарий, я думаю, что вам придется с этим смириться, пока вы не обновите тесты до JUnit 4. Eclipse по-прежнему выполняет тесты, что очень важно.

...