0
내 구체적인 문제는 인스턴스화중인 빈이 파일의 잘못된 위치를 찾고 있다는 것입니다. 내 애플 리케이션의 설정에서 그 값은 결코 정의되지 않으며 콩에 대한 기본값입니다.Spring을 실행하는 방법 앱으로 정확한 설정으로 통합 테스트
이@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
public class SqsQueueDaoIT {
private static final Logger LOGGER = LoggerFactory.getLogger(SqsQueueDaoIT.class);
@Autowired
SqsQueueDao sqsQueueDao;
@Autowired
AmazonSQSAsync amazonSQSAsync;
final String TEST_QUEUE_NAME = "queueName";
final String TEST_QUEUE_ENDPOINT = "sqs.us-east-1.amazonaws.com/123123123123123/";
final String TEST_ACTION = "validate";
final String TEST_BODY = "new body";
@Test
public void helloTest() {
sqsQueueDao.send(TEST_QUEUE_NAME, TEST_ACTION, TEST_BODY);
String body = receiveMessageResult().getMessages().get(0).getBody();
assertTrue(body.contains("action"));
assertTrue(body.contains("source_system_id"));
assertTrue(body.contains(TEST_ACTION));
assertTrue(body.contains(TEST_BODY));
}
private ReceiveMessageResult receiveMessageResult() {
ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(TEST_QUEUE_ENDPOINT + TEST_QUEUE_NAME);
receiveMessageRequest.putCustomQueryParameter("QueueName", TEST_QUEUE_NAME);
receiveMessageRequest.putCustomQueryParameter("QueueUrl", TEST_QUEUE_ENDPOINT);
return amazonSQSAsync.receiveMessage(receiveMessageRequest);
}
}
테스트를 실행에서 저를 방지 오류는 다음과 같습니다 : 여기
@Configuration
public class AWSConfig {
private static final Logger LOGGER = LoggerFactory.getLogger(AWSConfig.class);
// base sqs endpoint url is injected from application.properties
@Bean(name="awsClient")
@Primary
public AmazonSQSAsyncClient amazonSQSClient() {
LOGGER.info("Instantiating AmazonSQSAsyncClient Bean");
AmazonSQSAsyncClient awsSQSAsyncClient
= new AmazonSQSAsyncClient();
return awsSQSAsyncClient;
}
}
테스트 클래스의 :
여기 내 응용 프로그램의 설정입니다
Failed to instantiate [com.amazonaws.auth.profile.ProfilesConfigFile]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: AWS credential profiles file not found in the given path: /Users/user.name/Code/fullfillment/default
의 기본 콩은 다른 위치이며, 어디 있는지 보도록 설정 한 곳이 없습니다.
- AWS에 대한 구체적인 지식이있는 경우 뭔가 일반적인 일이 있습니까?
- 테스트를 실행하기 위해 spring-boot : run이 수행하는 것과 정확히 똑같은 방식으로 애플리케이션을 복제하는 방법은 무엇입니까?