我的测试文件是:
@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyApplicationTest {
@InjectMocks
@Autowired
protected MyController myController;
}
我的Controller
文件是:
@RestController
@RequestMapping(value="${app.base-path}") // Unable to load this property
public class MyController {
}
我尝试过@TestPropertySource
,但是没有用。
SpringBootApplication
工作正常。
@Value
注释不是这种情况。
用@Value
注释修饰的字段可以正常工作。
答案 0 :(得分:1)
您是否将.yml文件命名为application.yml
并将其放在src/main/java/resources
或src/test/java/resources
上?
将application.yml文件放在该文件夹中,它将被自动添加到类路径中,以便您可以在运行时访问该文件属性。
答案 1 :(得分:0)
默认情况下,Spring Boot将尝试加载类路径上的application.yml
和 application-{profilename}.yml
,因此您可以尝试使用application-test.yml
(它将消除此问题在一个文件中定义配置文件-可能会导致您的问题。
此外,您可以尝试在bootstrap.yml
之前加载的application.yml
。