【问题标题】:Change truncation settings in Gradle在 Gradle 中更改截断设置
【发布时间】:2019-11-06 20:08:20
【问题描述】:

在 Gradle (5.6.3) 中运行 Spock 测试时,我看到输出可能如下所示:

> :functionalTest > Executing test com.examp...baar.baaaaz.MyCustomGradleTasksP

如果它显示了测试运行的完整路径,实际上应该是这样的:

> :functionalTest > Executing test com.example.fooo.baar.baaaaz.MyCustomGradleTasksPluginFunctionalTest

也许它还会告诉我它正在运行该类的哪些实际功能测试?

有没有办法告诉 Gradle不要进行截断,以便我可以看到所有信息?

【问题讨论】:

    标签: gradle spock


    【解决方案1】:

    这似乎是 Gradle 本身的内部实现细节:

    private String createProgressLoggerDescription(TestDescriptorInternal testDescriptor) {
            DecoratingTestDescriptor decoratingTestDescriptor = (DecoratingTestDescriptor)testDescriptor;
            DefaultTestClassDescriptor defaultTestClassDescriptor = (DefaultTestClassDescriptor)decoratingTestDescriptor.getDescriptor();
            return "Executing test " + JavaClassNameFormatter.abbreviateJavaPackage(defaultTestClassDescriptor.getClassName(), MAX_TEST_NAME_LENGTH);
        }
    

    https://github.com/gradle/gradle/blob/master/subprojects/testing-base/src/main/java/org/gradle/api/internal/tasks/testing/logging/TestWorkerProgressListener.java#L103

    可以通过实现您自己的 Gradle 记录器来覆盖它,如下所述:https://docs.gradle.org/current/userguide/logging.html#sec:changing_what_gradle_logs

    【讨论】:

    • 我相信您已经找到了第一个链接的正确位置,并且能够将 MAX_TEST_NAME_LENGTH 设置为高于 60 的值可以解决我的问题。感谢您挖掘这个!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多