Выполнение тестов GWT 2.4 с JUnitCore - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть несколько GWTTestCases в моем наборе тестов, и в настоящее время я использую собственный сценарий тестирования, написанный на Java, который выполняет тесты следующим образом:

for(Class<?> testClass : allTestClasses) {
    final JUnitCore core = new JUnitCore();
    final Result result = core.run(testClass);
}

Теперь первый тест GWT пройдет, а все последующие тесты не пройдут. Неважно, какой тест выполняется первым, и я могу успешно запустить тесты из командной строки.

Просматривая журналы, конкретная ошибка обычно выглядит так:

java.lang.RuntimeException: deepthought.test.JUnit:package.GwtTestCaseClass.testMethod: could not instantiate the requested class

Я думаю, что это как-то связано со статическим состоянием GWTTestCase, но я не уверен. Если я выполню один прогон, в котором передам все тестовые классы ядру, они все пройдут, а затем пройдет любой отдельный тест.

Я предполагаю, что gwt компилирует и кэширует выполняемые вами тесты, а затем сохраняет их на основе модуля. Но в этом случае компилятор пропускает мои другие тестовые случаи, потому что не видит зависимости от них. Затем для следующего теста он возвращается в кэш, нажимает на него и не может найти нужный мне тест.

Есть какие-нибудь мысли по поводу обходного пути, кроме как просто сдать все тесты сразу?

1 Ответ

1 голос
/ 02 ноября 2011

Обходной путь, который я обнаружил, состоит в том, чтобы сначала добавить все классы GWTTestCase в GWTTestSuite, который затем можно отбросить. На этом этапе вы не несете затрат на компиляцию, но это каким-то образом информирует GWT обо всех тестовых случаях, и поэтому, когда вы компилируете первый ... все они компилируются.

Если вы спросите меня, это ошибка GWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...