问题描述
我正从thorntail移到Quarkus。 在测试中,我曾经创建一个@deployment方法,其中只放置测试所需的内容。特别是,我没有在类中添加@Startup注释(因为我不想对此进行测试...)。 当我移到QUARKUS时,我取消使用de @deployment静态方法,然后在启动测试时@Startup已启动... ...发生了很多坏事,这些事情阻止了我测试要测试的对象(嗯,它崩溃是因为它会尝试连接到不可用的服务。
所以问题是:用quarkusTest启动测试时,是否可以排除某些包或类?
解决方法
我终于创建了一个类:
@ApplicationScoped
public class ApplicationLifeCycle {
private final Logger log = Logger.getLogger(getClass());
@Inject
Startup startup;
void onStart(@Observes StartupEvent ev) {
log.info("The application is starting with profile " + ProfileManager.getActiveProfile());
if (!ProfileManager.getActiveProfile().equalsIgnoreCase("test")) {
startup.getModel();
}
}
void onStop(@Observes ShutdownEvent ev) {
log.info("The application is stopping...");
startup.stopMQ();
}
}
不是很丑吗? 有更好的方法吗?