如何使用 mvn 命令从终端执行@SpringBootTest?
How to execute @SpringBootTest from terminal using mvn command?
我正在尝试让终端命令执行 SpringBootTest。类似于 mvn spring-boot:运行。此命令触发 SpringBootApplication.
但我想使用带有 运行time maven 参数的 maven 命令从终端触发 SpringBootTest。你们有没有人知道任何类似的触发 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 以编程方式触发 testng。我需要 spring 框架来在 testng 测试用例中进行依赖注入。请帮忙。我尝试了所有的可能性
您可能想要 运行
mvn -Dtest=SeosSdkAutomationApplicationTests test
在包含您的 pom.xml 文件的目录中执行这个测试 class。
但是正如@M.Deinum所说,您的设置看起来有缺陷,试图在 Junit 测试中执行 TestNG 测试。
感谢所有朋友的建议。经过大量的反复试验,我得到了解决方案。这只是一种解决方法。我没有将 运行 main class 作为 Springboottest,而是将其作为 Maven class 触发,范围为测试,来自 maven 命令。请找到我的代码和触发代码的解决方案,
主要Class触发测试套件
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();
}
豆一号:
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 Class:
@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");
}
}
pom.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
解决方案触发主class:
mvn exec:java -Dexec.mainClass=“org.test.Sample” -Dexec.classpathScope=test
我正在尝试让终端命令执行 SpringBootTest。类似于 mvn spring-boot:运行。此命令触发 SpringBootApplication.
但我想使用带有 运行time maven 参数的 maven 命令从终端触发 SpringBootTest。你们有没有人知道任何类似的触发 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 以编程方式触发 testng。我需要 spring 框架来在 testng 测试用例中进行依赖注入。请帮忙。我尝试了所有的可能性
您可能想要 运行
mvn -Dtest=SeosSdkAutomationApplicationTests test
在包含您的 pom.xml 文件的目录中执行这个测试 class。
但是正如@M.Deinum所说,您的设置看起来有缺陷,试图在 Junit 测试中执行 TestNG 测试。
感谢所有朋友的建议。经过大量的反复试验,我得到了解决方案。这只是一种解决方法。我没有将 运行 main class 作为 Springboottest,而是将其作为 Maven class 触发,范围为测试,来自 maven 命令。请找到我的代码和触发代码的解决方案,
主要Class触发测试套件
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();
}
豆一号:
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 Class:
@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");
}
}
pom.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
解决方案触发主class:
mvn exec:java -Dexec.mainClass=“org.test.Sample” -Dexec.classpathScope=test