【问题标题】:Quarkus testing in Gradle - How to deal with test and native-testGradle 中的 Quarkus 测试 - 如何处理测试和原生测试
【发布时间】:2022-02-08 16:37:25
【问题描述】:

我有一个 Quarkus 项目,它有一个 test 源文件夹和一个 native-test 文件夹。指导似乎是我将在native-test 文件夹中进行很多相同的测试(特别是@QuarkusIntegrationTests)。有没有办法指定在test 中使用与native-test 相同的源集?

一个人可能希望在另一个源集中进行不同的测试是有道理的,但对我来说,必须跟踪两个源集中的相同测试似乎很乏味。有没有办法告诉nativeTest 任务使用test 源集中的测试?那是我想要的吗?我是否正确地可视化了这些测试的目的?

我假设我可以在 Gradle 中设置一些脚本,以便在 testNative 运行时将相关测试复制到 native-test 目录,但这感觉很hacky。

【问题讨论】:

    标签: testing quarkus quarkus-native


    【解决方案1】:

    nativeTest 任务继承自 Test 任务,因此您应该能够将其配置为 test 任务。

    您可能面临的一个问题是gradle test 将使用默认打包运行@QuarkusIntegrationTest(这可能需要一些时间)。 gradle nativeTest 将运行 @QuarkusTest 的所有测试事件。

    在任务配置中使用include/exclude可能会得到你想要的结果:

    nativeTest {
      testClassesDirs = project.sourceSets.nativeTest.output.classesDirs
      include '**/it/*'
    }
    
    test {
      exclude '**/it/*'
    }
    

    gradle test 将运行来自src/test/java 的所有测试,但it 包中的测试除外。 gradle nativeTest 只会从位于 it 包中的 src/test/java 运行测试。

    【讨论】:

    • 是的,这变成了一个比我预期的更深的兔子洞。标记为已接受,因为它使我到达了问题所在的位置(尽管我稍微修改了配置)。我刚刚发的相关问题:github.com/quarkusio/quarkus/issues/23528
    猜你喜欢
    • 1970-01-01
    • 2019-07-05
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2017-04-04
    • 2018-02-25
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多