java - 在测试目录中运行主类

标签 java gradle junit4

我有一个非常基本的 gradle 项目,并且有一个带有 main() 的测试文件。文件“src/test/javaTestRunner.java”如下:

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {

    public static void main(String[] args) {
        Result result = JUnitCore.runClasses(TestJunit.class);

        for (Failure failure : result.getFailures()) {
            System.out.println(failure.toString());
        }

        System.out.println(result.wasSuccessful());
    }
}

代码编译(“./gradlew classes”和“./gradlew testclasses”工作正常)。但是,我无法执行 TestRunner,无法找到调用上述类的正确方法。我尝试了以下方法:

./gradlew test --tests TestRunner ./gradlew 测试 TestRunner ./gradlew 测试运行器

“build.gradle”包含以下内容:

apply plugin: 'java'
apply plugin: 'application'

repositories {
    jcenter()
}

dependencies {
    compile 'com.google.guava:guava:21.0'
    testCompile 'junit:junit:4.12'
}

// Define the main class for the application
mainClassName = 'MyFirstJavaProgram'

任何建议。

谢谢, 艾哈迈德。

最佳答案

另一种运行 main 方法作为 gradle 测试的方法:
将 main 方法更改为不带参数的非静态方法,并使用 @Test 注释:


public class TestRunner {

    @Test
    public void runTests() {
        Result result = JUnitCore.runClasses(TestJunit.class);

        for (Failure failure : result.getFailures()) { // consider using assertAll (JUnit5)
            System.out.println(failure.toString());
        }

        System.out.println(result.wasSuccessful()); // consider using assertTrue (JUnit5)
    }
}

然后 ./gradlew test --tests TestRunner 现在应该可以工作了。

不错的 JUnit 5 教程 Writing Tests with JUnit 5作者:JetBrains 的 Trisha Gee。

关于java - 在测试目录中运行主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50730482/

相关文章:

java - mvn 在正确位置安装 :install-file is unable to install ojdbc7. jar

android - 现在必须显式声明 Kapt 注释处理器

gradle - Gradle发行插件

Android Studio Gradle 选项卡

java - 如何自动为@SuiteClasses创建列表

database - DBUnit 坚持为未指定的值插入 null,但我希望使用 DB 默认值

java - Spring Autowire Quartz 调度程序

java - 如何使用 JPA 命名查询在查询参数中设置类似值

java - JFileChooser 在 Linux 下不是模态的

android - 如何在不使用 Android 的情况下使用 JUnit 测试 Android 应用程序中的类?