java - gradle test 运行我的测试类,但不是自定义测试任务

标签 java testing junit build gradle

这是我的测试类:

public class RoutingResponseRegressionOneByOne {


    @BeforeClass
    public static void oneTimeSetUp() {
        routingClient = injector.getInstance(IRoutingClient.class);
        System.out.println("in RoutingResponseRegressionOneByOne:: oneTimeSetUp");
    }

我在我的 build.gradle 中添加了一个任务

task testRegression(type: Test) {
    systemProperties['test.single'] = '\'RoutingResponseRegressionOneByOne\''
    //systemProperty 'test.single', System.getProperty('test.single', '\'RoutingResponseRegressionOneByOne\'')
}

当我从 intellij 运行 "test" 时,这是输出

然而,当我从 intellij 中 "testRegression" 时,这是输出:

为了让 "testRegression" 只运行这个测试类,我应该修复什么?

最佳答案

您可以使用 P 将参数传递给您的任务并使用 TestFilter .

在此链接中,您将找到过滤器用法的完整示例。下面我附上了自定义 automationTest 任务的代码,该任务从特定文件夹运行测试。

task automationTest(type: Test) {
    //search for an argument called 'single'. if exists, use it as a test filter
    if (project.hasProperty('single')) {
        filter {
            includeTestsMatching "*${project.property('single')}*"
        }
    }
    useTestNG()

    description = "Runs Automation Tests"
    testClassesDir = file("$buildDir/classes/main/automation")
    classpath += sourceSets.main.runtimeClasspath
}

将其运行为:gradle -Psingle=MyTest automationTest

关于java - gradle test 运行我的测试类,但不是自定义测试任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28657833/

相关文章:

c# - Java 似乎支持 long 类型的可变字段,而 C# 不支持 - 这背后的原因是什么?

java - 将转换后的 SOAP/XML 对象返回给 url

java - 如何对读取给定文件的方法进行单元测试

java - Java中从二叉搜索树中删除

javascript - 如何使用 Jest 测试 React 组件的 onClick 行?

jenkins - 通过jenkins : where do dependencies download运行gradle测试服

java - 重用缓存的 spring 上下文来构建更大的上下文

java - 在 DispatcherServlet 中未找到名称为 '' 的 URI [/api/encodedurl] 的 HTTP 请求的映射

java - 使用 Spring 资源加载器通过 Maven 运行的测试用例中的 FileNotFoundException

java - 在 Selenium Webdriver 中显式等待 findElements