Как запустить тестовые случаи в списке несколько разных jar-файлов?

StackOverflow https://stackoverflow.com/questions/419833

  •  05-07-2019
  •  | 
  •  

Вопрос

У меня есть список jar-файлов, все из которых содержат несколько разные версии одной и той же системы.

Я хочу выполнить набор тестовых случаев для каждого файла jar, чтобы получить результаты для каждого файла jar (через RunListener или что-то в этом роде).

Я немного запутался с предполагаемыми проблемами с загрузкой классов.

Как я могу красиво это сделать?

Это было полезно?

Решение

Если вы используете ant, задача JUnit принимает путь к классам.

<target name="test">
  <junit ...">
    <classpath>
      <pathelement path="${test.jar.path}" />
    </classpath>
    ...
  </junit>
</target>

Вы можете использовать задачу antcall для многократного вызова цели теста с другим значением свойства test.jar.path.

Другие советы

Если jar-файлы поддерживают один и тот же интерфейс, все, что вам нужно сделать, - это запустить каждый тест с немного отличным путем к классу - каждый раз с jar-файлами из другой версии.

Если вы используете интеграцию Eclipse JUnit, просто создайте N конфигураций прогонов, в каждой из которых на вкладке classpath укажите необходимые файлы jar.

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

Примерно так:

URLClassloader ucl = new URLClassLoader( list of jars from version1 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();

ucl = new URLClassLoader( list of jars from version2 );
TestCase tc = ucl.loadClass("Your Test Case").newInstance();
tc.runTest();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top