Как выполнить @SpringBootTest из терминала с помощью команды mvn? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь получить команду терминала для выполнения SpringBootTest. Нечто похожее на mvn spring-boot: run . Эта команда вызывает SpringBootApplication.

Но я хочу запустить SpringBootTest из терминала, используя команду maven с аргументами maven во время выполнения. Кто-нибудь из вас знает какую-либо подобную команду для запуска SpringBootTest?

Мой код выглядит следующим образом:

@SpringBootTest
class SeosSdkAutomationApplicationTests {

    @Test
    void contextLoads() {
        System.out.println("Hello!!");
        TestNG tng = new TestNG();
        XmlSuite suite = new XmlSuite();
        suite.setName("Appium Test suite");
        XmlTest test = new XmlTest(suite);
        test.setName("Sample Test");
        List<XmlClass> classes = new ArrayList<>();
        classes.add(new XmlClass("com.org.TestNGClass_sample"));
        test.setXmlClasses(classes);
        List<XmlSuite> suites = new ArrayList<>();
        suites.add(suite);
        tng.setXmlSuites(suites);
        tng.run();

    }

Я программно запускаю тестирование с помощью Spring. Мне нужен Spring Framework для внедрения зависимостей в тестовых случаях. Пожалуйста, помогите. Я перепробовал все возможности

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Спасибо за все ваши предложения, друзья. После долгих проб и ошибок я получил решение. Это просто обходной путь. Вместо того, чтобы запускать основной класс как Springboottest, я запускал его как основной класс с областью действия в качестве теста из команды maven. Пожалуйста, найдите мой код и решение для его запуска,

Основной класс для запуска набора тестов

import java.util.List;

class Sample {

public static void main(String[] args) {
        System.out.println("Hello!!");
        TestNG tng = new TestNG();
        XmlSuite suite = new XmlSuite();
        suite.setName("Appium Test suite");
        XmlTest test = new XmlTest(suite);
        test.setName("Sample Test");
        List<XmlClass> classes = new ArrayList<>();
        classes.add(new XmlClass("org.test.TestNGClass_sample"));
        test.setXmlClasses(classes);
        List<XmlSuite> suites = new ArrayList<>();
        suites.add(suite);
        tng.setXmlSuites(suites);
        tng.run();

}

Bean One:

import org.springframework.stereotype.Component;

@Component
public class BeanOne {

    public BeanOne createBean(){
        return new BeanOne();
    }

    public void printBeanOne(){
        System.out.println("Bean One");
    }

}

Боб Два

import org.springframework.stereotype.Component;

@Component
public class BeanTwo {

    public BeanTwo createBean(){
        return new BeanTwo();
    }

    public void printBeanTwo(){
        System.out.println("Bean Two!!");
    }
}

TestNG Класс:

@SpringBootTest
public class TestNGClass_sample extends AbstractTestNGSpringContextTests {

    @Autowired
    public BeanOne beanOne;

    @Autowired
    public BeanTwo beanTwo;

    @Test
    public void test(){
        beanOne.printBeanOne();
        beanTwo.printBeanTwo();
    }

    @Test
    public void test2(){
        System.out.println("Test2");
    }

    @Test
    public void test3(){
        System.out.println("Test3");
    }
}

пом. xml конфигурация

...
    <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.2.1</version>
                    <configuration>
                        <mainClass>org.test.Sample</mainClass>
                    </configuration>
                </plugin>
            </plugins>
        </build>
...

Выход:

.   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.2.6.RELEASE)

2020-03-31 22:51:00.391  INFO 24148 --- [ionTests.main()] s.s.a.s.TestNGClass_sample               : Started TestNGClass_sample in 0.653 seconds (JVM running for 3.29)
Bean One
Bean Two!!
Test2
Test3

===============================================
Appium Test suite
Total tests run: 3, Passes: 3, Failures: 0, Skips: 0

Решение для запуска основного класса:

mvn exec:java -Dexec.mainClass=“org.test.Sample” -Dexec.classpathScope=test
0 голосов
/ 31 марта 2020

Возможно, вы захотите запустить

mvn -Dtest=SeosSdkAutomationApplicationTests test

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

Но, как сказал @ M.Deinum, ваша установка выглядит некорректно, пытаясь выполнить тест TestNG внутри теста Junit.

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