Добавьте основной метод в некоторые классы для простого тестирования - PullRequest
0 голосов
/ 28 января 2019

У меня есть несколько классов на протяжении всего проекта Maven.Я хотел бы добавить метод main к некоторым из этих классов для базового тестирования при разработке.

Я попытался объявить класс для запуска с:

mvn exec:java -Dexec.mainClass="huru.util.Async"

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

обратите внимание, что для тестирования мне нужна большая часть зависимостей в pom.xml, поэтому мне, вероятно, понадобится mvnчтобы запустить класс, который мне нужно протестировать, я не могу запустить его напрямую с помощью javac.

update к сожалению, мне может понадобиться создать профиль в pom.xml, так как maven может 'кажется, очень много делает из командной строки.Я не очень разбираюсь в профилях, и поскольку в моем файле pom.xml его нет, я немного боюсь добавить этот раздел.

1 Ответ

0 голосов
/ 28 января 2019

Как предлагается в комментариях, одно из решений - пропустить помещение метода main в класс, который я хочу протестировать, но вместо этого создать тест junit ... это работает в командной строке:

 mvn -Dtest=AsyncTest test

где мой тест выглядит так:

package huru;

import huru.util.Async;
import io.vertx.core.Vertx;
import io.vertx.ext.unit.TestContext;
import io.vertx.ext.unit.junit.VertxUnitRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.Arrays;

@RunWith(VertxUnitRunner.class)
public class AsyncTest {


  @Test
  public void test(TestContext tc) {
    Async.Parallel(Arrays.asList(

      v -> {
        v.done(null, null);
      }

    ), (e, results) -> {

    });
  }

}
...