【问题标题】:How do I separate gradle unit tests from integration tests in the same source set?如何在同一源集中将 gradle 单元测试与集成测试分开?
【发布时间】:2016-10-21 17:34:32
【问题描述】:

问题是我们是一家 IntelliJ 商店,this issue 一直是我们的眼中钉。这基本上意味着一切都必须在./test/ 中才能工作。 ./it/ 是不可接受的,因为每次您尝试做任何事情时,IntelliJ 都会将其视为错误的来源。那么....如何将集成测试与单元测试分开,以便它们在同一源集中时可以在 Gradle 中单独运行?谁有例子?

如果有帮助,我们会使用 *Test*.java*ITCase*.java 命名约定。我们正在考虑的另一件事是对 JUnit 的 @Category 注释的某种使用。

附:请投票给this issue。考虑到在与单元测试不同的目录中进行集成测试的 Gradle,这将是任何 IntelliJ 商店的眼中钉。

【问题讨论】:

    标签: intellij-idea gradle


    【解决方案1】:

    我无法使用 IntelliJ 配置,但在 build.gradle 中,如果您有:

    test {
        if (! project.hasProperty("ITCASE")) {
            exclude "**/*ITCase*"
        }
    }
    

    那么以下命令行将包含集成测试:

    gradle test -PITCASE=true
    

    那么标准将排除它们:

    gradle test 
    

    【讨论】:

    • 对于相同的位置只有两个命名的源集,只是不同的排除/包含如下:stackoverflow.com/questions/22209181/…
    • 比这更容易。我们关心的不是事情何时得到遵守,因为这非常快,甚至可以很好地并行化。这是测试何时以及是否运行,因此可以与单元测试同时编译它们。话虽如此,我不需要额外的源集。我所需要的只是一个额外的“类型:测试”任务,其中包含您可能期望的包含和排除设置。用 check.dependsOn 跟进,你就是 stylin。
    猜你喜欢
    • 2010-10-23
    • 2012-01-01
    • 2014-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-05
    • 2019-07-20
    相关资源
    最近更新 更多