Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Viewing results of junit test for gradle?

So I currently have the following build.gradle file:

apply plugin: 'java'

sourceSets {
    main {
        java {
            srcDir 'src/model'
        }
    }

    test {
        srcDirs = ["tests/model"]
    }
}

dependencies {
    compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')

    testCompile group: 'junit', name: 'junit', version: '4.+'
}  

that builds successfully when I type "gradle test" into the command line.

However I do the following error when running gradle test:

Creating properties on demand(a.k.a dynamic properties) has been deprecated.

As you can see, my junit tests are all in the folder test/model/ but I was wondering how do I see the results of if my junit tests passed?

You can view my repository here: https://github.com/quinnliu/WalnutiQ

like image 600
Wang-Zhao-Liu Q Avatar asked Dec 20 '13 22:12

Wang-Zhao-Liu Q


People also ask

Where are JUnit test results stored?

This data is stored within JENKINS_HOME , and the current storage format requires huge overheads when retrieving statistics and, especially, trends. In order to display trends, each report has to be loaded and then processed in-memory.

How does Gradle run JUnit tests?

By default, Gradle will run all tests that it detects, which it does by inspecting the compiled test classes. This detection uses different criteria depending on the test framework used. For JUnit, Gradle scans for both JUnit 3 and 4 test classes.

How do I create a test report in Gradle?

How to generate a Test Report. Gradle generates a Test Report automatically when it runs the entire Test Suite. To do the same, run ./gradlew test (or gradlew. bat test from Windows), or run the test Gradle task from your IDE.

How do I run JUnit 4 tests in Gradle?

In your Gradle project, in the editor, create or select a test to run. From the context menu, select Run <test name>. icon in the left gutter. If you selected the Choose per test option, IntelliJ IDEA displays both Gradle and JUnit test runners for each test in the editor.


3 Answers

Chingy,

I had to update a couple of things in your build.gradle:

source set for tests
added Maven repository to get JUnit library

apply plugin: 'java'

repositories {
    mavenCentral()
}

sourceSets {
    main {
        java {
            srcDir 'src/model'
        }
    }

    test {
        java {
            srcDir 'tests/model'
        }
    }
}

dependencies {
    compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
    runtime fileTree(dir: 'libs', include: '*.jar')

    testCompile group: 'junit', name: 'junit', version: '4.+'
}

Now, the results of $ gradle build:

bender:WalnutiQ demo$ gradle build
:compileJava UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:assemble UP-TO-DATE
:compileTestJava
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
:processTestResources UP-TO-DATE
:testClasses
:test

model.RetinaTest > test_seeBMPImage FAILED
    java.lang.IllegalArgumentException at RetinaTest.java:25

model.MARK_I.SpatialPoolerTest > test_performSpatialPoolingOnRegion FAILED
    java.lang.IllegalArgumentException at SpatialPoolerTest.java:60

model.util.JsonFileInputOutputTest > test_saveRegionObject FAILED
    java.lang.IllegalArgumentException at JsonFileInputOutputTest.java:69

model.util.SynapsePermanencesViewerTest > test_saveRegionToBeOpenedInSynapsePermanencesViewer FAILED
    java.lang.IllegalArgumentException at SynapsePermanencesViewerTest.java:45

49 tests completed, 4 failed
:test FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':test'.
> There were failing tests. See the report at: file:///Users/demo/development/tmp/WalnutiQ/build/reports/tests/index.html

I think you can take it from here :o)

PS: I would recommend to refactor your project structure to match Maven/Gradle structure, so you don't have to deal with source sets and it will make your build.gradle cleaner.

src/main/java   Production Java source
src/main/resources  Production resources
src/test/java   Test Java source
src/test/resources  Test resources
src/sourceSet/java  Java source for the given source set
src/sourceSet/resources Resources for the given source set
like image 70
kukido Avatar answered Nov 15 '22 09:11

kukido


When you run gradle build or gradle test, there is a build directory that is created. This directory is where all the build artifacts are placed. Inside the build directory is a reports directory. This directory is where reports are placed. For example, pmd reports, junit reports, etc.

The JUnit reports are located in the tests directory. Open up the index.html file in a browser to view the report.

like image 36
Christopher Z Avatar answered Nov 15 '22 10:11

Christopher Z


You can specify where the JUnit test results go with the following command within your test block.

test {
    reports.junitXml.destination = file('build/test-results/folder')
}
like image 40
BenJi Avatar answered Nov 15 '22 11:11

BenJi