У меня есть несколько 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 компилирует и кэширует выполняемые вами тесты, а затем сохраняет их на основе модуля. Но в этом случае компилятор пропускает мои другие тестовые случаи, потому что не видит зависимости от них. Затем для следующего теста он возвращается в кэш, нажимает на него и не может найти нужный мне тест.
Есть какие-нибудь мысли по поводу обходного пути, кроме как просто сдать все тесты сразу?