letter Q
letter Q

Reputation: 15385

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

Upvotes: 6

Views: 14049

Answers (3)

BenJi
BenJi

Reputation: 353

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')
}

Upvotes: 3

kukido
kukido

Reputation: 10601

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

Upvotes: 6

Christopher Z
Christopher Z

Reputation: 952

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.

Upvotes: 4

Related Questions