스프링 부츠 어플리케이션 OY 테스트
Gradle을 통해 Spring Boot 어플리케이션을 테스트하기 위해 Oy를 사용하는 샘플 어플리케이션을 어디서 찾을 수 있는지 아는 사람 있나요?cmd 행에서 서버를 시작하여 IDE를 사용하여 테스트를 정상적으로 실행할 수 있지만 CI 서버에서 모든 테스트를 프로그래밍 방식으로 실행할 수 있어야 합니다.여기에서 답을 확인했지만, 이 솔루션은 나에게 효과가 없었습니다.아마도 여러 단계의 def 파일이 있기 때문일 것입니다.
여기 제 설정이 있습니다.
build.grade (다른 질문에서 언급)
testCompile ("org.springframework.boot:spring-boot-starter-test",
...
"info.cukes:cucumber-spring:${cucumberVersion}")
OyTest.java
@RunWith(Cucumber.class)
@CucumberOptions(format = "pretty", features = "src/test/resources")
public class CucumberTest{
}
Abstract Spring Test.java(모든 Step Def 파일로 확장)
@SpringApplicationConfiguration(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class)
@Ignore
public abstract class AbstractSpringTest
{ ... }
기동시에 올바르게 동작하고 있지 않다.1. 스텝 def 파일 및2 를 초기화하려고 하고 있기 때문이다.앱이 시작되지 않아 오이 테스트로 연결이 되지 않습니다.
감사해요.
편집: 그래들을 사용하여 응용 프로그램을 시작 및 중지하는 방법을 알려주시면 됩니다.
다음은 답변이 있는 저장소입니다.https://github.com/jakehschwartz/spring-boot-cucumber-example
요약하면,AbstractSpringTest
클래스에는 다음 주석이 필요합니다.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = DemoApplication.class, loader = SpringApplicationContextLoader.class)
@WebAppConfiguration
@IntegrationTest
저도 비슷한 증상이 있었는데, 제 오이가 봄의 맥락을 시작하지 않았어요.
알고 보니 다음 의존관계 중 하나가 누락되어 있었습니다.
build.gradle
testCompile "info.cukes:cucumber-junit:1.2.4"
testCompile "info.cukes:cucumber-java:1.2.4"
testCompile "info.cukes:cucumber-spring:1.2.4"
스텝 Defs.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(
loader = SpringApplicationContextLoader.class,
classes = Application.class
)
@WebIntegrationTest(randomPort = true)
public class StepDefs {
@Value("${local.server.port}")
int port;
}
업데이트: Spring Boot 1.5.1
@ContextConfiguration(
loader = SpringBootContextLoader.class,
classes = Application.class
)
@jakehschwartz와 더불어 웹 앱을 임의의 사용 가능한 포트에서 시작하려면 Abstract Spring Test에서 다음을 수행해야 합니다.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Application.class, loader = SpringApplicationContextLoader.class)
@WebIntegrationTest({"server.port=0"})
public abstract class AbstractSpringTest {
@Value("${local.server.port}")
protected int serverPort;
...}
스프링이 JUnit 매개 변수 테스트에 참여하도록 하기 위해 이런 일을 했습니다.오이도 같은 콘셉트여야 하는데 안 먹어봤어요.XML 설정을 사용하고 있었기 때문에, 차이가 있을지도 모릅니다.
스프링 포함 실행JUnit4
public abstract class RunWithSpringJUnit4 {
private TestContextManager testContextManager;
public RunWithSpringJUnit4() {
try {
this.testContextManager = new TestContextManager(getClass());
this.testContextManager.prepareTestInstance(this);
} catch (Exception e) {
e.printStackTrace();
}
}
}
오이시험
@RunWith(Cucumber.class)
@CucumberOptions(format = "pretty", features = "src/test/resources")
public class CucumberTest extends RunWithSpringJUnit4 {
}
먼저 스프링 부트를 그래들로 적용했는지 확인해야 합니다.호출하다gradle build
도망갈 수 있는 항아리를 만들 수 있습니다.봄학급을 메인으로 하는 것이 아니라, 실타래로 시작하고, 안정될 때까지 기다렸다가 오이를 운영하는 포장지를 가져라.
@RunWith(Cucumber.class)
public class LucasePsCucumberTest implements Runnable {
public static void main(String[] args) {
Thread t = new Thread(this);
t.start();
// wait for t
cucumber.api.cli.Main(null);
}
}
언급URL : https://stackoverflow.com/questions/30667729/cucumber-test-a-spring-boot-application
'programing' 카테고리의 다른 글
React 클래스 내에서 propTypes와 defaultProps를 정적 소품으로 넣어도 될까요? (0) | 2023.02.22 |
---|---|
Java Spring Boot 요청 헤더에서 베어러 토큰을 얻는 방법 (0) | 2023.02.22 |
테이블스페이스의 빈 공간 찾기 (0) | 2023.02.22 |
jAjax를 통해 Wordpress 페이지 로드 쿼리 (0) | 2023.02.22 |
구조체에 대한 JSON 문자열 구문 분석 방법 (0) | 2023.02.22 |