我想为我的应用程序进行单元测试。我正在使用Spring Boot和CloudFoundry。 当我在没有云连接的情况下启动“测试文件”时,我的日志中出现错误: “引起:org.springframework.cloud.CloudException:找不到合适的云连接器”
我试图使用:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT, properties = {
"spring.cloud.config.enabled:false" })
如何排除/关闭云以进行单元测试?
谢谢!
答案 0 :(得分:0)
我通常在特定于CF的配置上添加@Profile("cloud")
。 cloud
个人资料将自动应用于CF env。
答案 1 :(得分:0)
您的应用是通过引导启动器获得Spring Cloud Connectors(例如org.springframework.boot:spring-boot-starter-cloud-connector
),还是您对连接器库(例如org.springframework.cloud:spring-cloud-spring-service-connector
)有明确的依赖关系?
如果您使用的是Boot starter,则除非cloud
Spring profile is active,否则不应启用云连接器autoconfig。运行测试时,请确保配置文件未处于活动状态。
如果要在测试中明确禁用云连接器autoconfig,proper syntax将是:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT, properties = {
"spring.cloud.enabled=false" })
答案 2 :(得分:0)
在本地环境中运行时会出现此问题 代码中的问题
public byte[] zipBytes(final List<SomeDTO> listDTOS) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
try {
for (SomeDTO dto: listDTOS) {
ZipEntry entry = new ZipEntry("Test");
zos.putNextEntry(entry);
zos.write(dto.someByteArrayOutputStreamProperty.toByteArray());
zos.closeEntry();
zos.finish();
zos.flush();
}
} catch (IOException io) {
LOGGER.error("Error generate zip" + io.getLocalizedMessage(), io);
} finally {
zos.close();
}
return baos.toByteArray();
}
已解决的代码
CloudConfig extends ApplicationCloudConfig {
// local and cloud configuration code seperated with @Profile.
}