Gradle测试:仅使用特定测试显示标准流

e18*_*18r 5 java logging unit-testing gradle

在使用Gradle进行测试时,我想在控制台上显示标准流,只有当我使用该--tests选项运行特定的测试子集时.

让我详细说明一下.在build.gradle

test {
    testLogging {
        //showStandardStreams = true
    }
}
Run Code Online (Sandbox Code Playgroud)

通常,当我运行我的整个测试套件时,我不喜欢从测试中获得控制台输出.但是当我正在进行特定测试时,拥有控制台输出是非常有用的,所以我继续在执行该测试之前取消注释该行gradle test --tests *name.

我想知道是否有自动化方法.

编辑:让我澄清一下.我想在运行时输出控制台输出gradle test --tests *name,但不是在我跑的时候gradle test.

tna*_*eel 4

要在所有测试的某些运行中获取控制台输出,您可以在命令行上提供附加参数(-Poutput):

gradle test --tests *name -Poutput

test {
    onOutput { descriptor, event ->
        if (project.hasProperty('output')) {
            logger.lifecycle(event.message)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

仅获取特定测试的控制台输出:

test {
    onOutput { descriptor, event ->
        if (descriptor.name=='YOUR_TEST_METHOD_NAME' &&
                descriptor.className=='YOUR_PACKAGE_QUALIFIED_CLASS_NAME') {
            logger.lifecycle(event.message)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅测试描述符测试