testing - Quarkus gradle 测试失败
问题描述
我正在尝试使用 quarkus 运行简单的“入门”类型的 gradle 项目,并且我的单元测试每次都失败并出现此错误
Caused by: io.quarkus.bootstrap.BootstrapException: Failed to locate project pom.xml for C:\Users\myuser\IdeaProjects\myproj\build\classes\java\main
遵循此处的说明https://quarkus.io/guides/gradle-tooling 对发生的事情有什么建议或想法吗?
Gradle 版本详情
摇篮 5.4
Build time: 2019-04-16 02:44:16 UTC
Revision: a4f3f91a30d4e36d82cc7592c4a0726df52aba0d
Kotlin: 1.3.21
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9)
OS: Windows 10 10.0 amd64
解决方案
顺便提一句。问题仍然存在(当前版本 0.19.1)并且问题(2307)仍未解决。
原因是@QuarkusTest
指向QuarkusTestExtension
,它BootstrapClassLoaderFactory.newDeploymentClassLoader
试图用 Maven 解析本地项目。
我们有以下选择:
- 等待官方解决方案(见问题)
- 编写自己的扩展覆盖
BootstrapClassLoaderFactory
以“理解” gradle 项目结构 - 应用解决方法(暂时),即从 gradle build 生成 pom.xml
解决方法
在 build.grade 中:
plugins {
id 'java'
id 'io.quarkus' version '0.19.1'
// ...
id 'maven-publish'
}
// ...
publishing {
publications {
mavenJava(MavenPublication) {
from components.java
// augment your pom here if necessary
}
}
}
// ...
task createPom(type: Copy) {
description 'This is workaround to generate pom.xml, needed for @QuarkusTest tests.'
dependsOn('generatePomFileForMavenJavaPublication')
from "$buildDir/publications/mavenJava/pom-default.xml"
into '.'
rename('pom-default.xml', 'pom.xml')
}
笔记:
- 使用'maven-publish',而不是过时的'maven'插件。
- 不要忘记应用
./gradlew createPom
依赖项更改
推荐阅读
- python - 如何在 Plotly Dash 中创建两个带有两个单独输入的单独按钮?
- python - cv2.error: opencv(4.5.3) :-1: error: (-5:bad argument) in function'resize'
- javascript - 无法在 React 中使用 useState 动态设置文本字符串
- reactjs - 具有使用状态的 React.js Chakra UI 多复选框
- raspberry-pi4 - 目标“broadcom/bcm2711-rpi-4-b.dtb”的配方失败
- jmeter - Jmeter如何定义测试用户在同一个线程组中执行不同的事务
- html - 如何跳过 html 表格中的单元格?
- django - 在 Django Admin (jazzmin) 中使用 jQuery DateTimePicker 得到错误 - 输入值列表
- graphql - 为什么在递归查询中只调用一次console.log?
- c - 在 MacOS Big Sur 上检查库是否存在