GitHub Actions에서 빌드할 때 외부 properties가 없어서 테스트가 실패한다.
Description:
Parameter 0 of constructor in com.dasd412.remake.api.service.security.EmailService required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
Action:
Consider defining a bean of type 'org.springframework.mail.javamail.JavaMailSender' in your configuration.
외부 properties (예를 들어 email, oauth, database 관련 properties)는 보안상 GitHub에 푸시해선 안된다.
그런데 CI 툴은 디렉토리 내에 해당 properties가 없으니, 당연히 찾을 수 없다고 에러를 뱉어낸다.
spring.mail.host=smtp.test.com
spring.mail.port=1111
spring.mail.username=mock@test.com
spring.mail.password=ThisISmock
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.properties.mail.smtp.trust=smtp.test.com
대부분의 테스트 코드는 외부 secret properties 내의 속성들을 읽을 필요가 없다. 따라서 속성 값을 아무렇게나 임의로 넣자.
# inject mockito properties
spring.profiles.include=database-mock,oauth-mock,email-mock
물론, 테스트 코드들이 application-test.properties
만 사용해야 한다.