我试图从JUnit套件类启动Spring应用程序,但是应用程序没有启动。我的套件类调用两个测试类,每个测试类对Spring应用程序进行API调用
这两个测试类都将在根POM上使用mvn clean install通过,但在从类调用时将在中失败。
套件类
import com.intuit.karate.KarateOptions;
import com.intuit.karate.junit4.Karate;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Karate.class)
@Suite.SuiteClasses({
BasicParallelKarateTest.class,
DynamicParallelKarateTest.class
})
@KarateOptions(tags = "~@ignore")
public class JUnitSuiteTest { }Build - mvn clean install

堆栈跟踪
[ERROR] Errors:
[ERROR] BattleTest.feature:11 -
org.apache.http.conn.HttpHostConnectException: Connect to localhost:8080 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
...
...
...
[ERROR] ResultTest.feature:10 -
org.apache.http.conn.HttpHostConnectException: Connect to localhost:8080 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
[ERROR] Tests run: 13, Failures: 0, Errors: 13, Skipped: 0Repo:https://github.com/cmccarthyIrl/spring-karate-test-harness
部分解决方案-在CI中不运行套件类
@KarateOptions(tags = "~@ignore")
@RunWith(JUnitPlatform.class)
@SelectClasses({
BasicParallelKarateTest.class,
DynamicParallelKarateTest.class
})
@IncludeEngines({"junit-jupiter","junit-vintage"})
public class JUnitSuiteTest {}发布于 2020-11-02 22:55:38
在测试中添加SpringClassRule和SpringMethodRule
public class MyTest {
@ClassRule
public static final SpringClassRule springClassRule = new SpringClassRule();
@Rule
public final SpringMethodRule springMethodRule = new SpringMethodRule();另一种选择是使用@RunWith(SpringRunner.class)运行测试套件,但是该套件不能有两个测试运行程序,因此您必须删除@RunWith(Karate.class)。我想这不是一种选择,对吧?
https://stackoverflow.com/questions/64653464
复制相似问题