Quarkus Gradle测试失败

时间:2019-04-23 20:35:48

标签: testing gradle quarkus

我正在尝试使用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 有什么建议或想法吗?

版本详细信息

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

1 个答案:

答案 0 :(得分:1)

顺便说一句。该问题仍未解决(当前版本为0.19.1),而问题(2307)仍未解决。

原因是@QuarkusTest指向QuarkusTestExtension,而BootstrapClassLoaderFactory.newDeploymentClassLoader试图用Maven解决本地项目。

我们有以下选择:

  • 等待官方解决方案(请参阅问题)
  • 编写自己的扩展覆盖BootstrapClassLoaderFactory,以“了解” gradle项目的结构
  • (暂时)应用解决方法,即从gradle构建生成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