TestFX и Gradle - NoNodeFoundException

testFx уже работает в Eclipse, и тесты графического интерфейса проходят успешно. Но с градиентом это не работает. Это дает мне исключение NoNodeFoundException на кнопке. Если я избавлюсь от этой строки кода, она покажет мне то же самое исключение для следующей строки, которая указывает на TextField.

Похоже, никто, кроме разработчика, никогда не пробовал использовать testfx в сочетании с gradle.

Есть идеи, как это решить?

gradle.build

apply plugin: 'java'
apply plugin: 'maven'
apply plugin: 'checkstyle'
apply plugin: 'application'
apply plugin: 'jacoco'


group = 'TodoManager'
version = '0.0.1'
description = """Aufgabenplanung"""

// защита конфиденциальности mainClassName = "*********. todomanager.model.ReadAndWrite"

defaultTasks 'clean', 'test', 'build', 'jacocoTestReport','distZip','javadoc','wrapper'


repositories {

   maven { url "http://repo.maven.apache.org/maven2" }
     jcenter()
     mavenCentral()
}


jar {
    baseName = 'TodoManager'
    version =  '0.5.0'
}

dependencies {

/*
    testCompile group: "org.loadui", name: "testFx", version: "3.1.2"
    testCompile "org.testfx:testfx-core:4.0.+"
    testCompile "org.testfx:testfx-junit:4.0.+"
    compile files('lib/TodoManagerLibrary-1.1.jar')
    testCompile 'junit:junit:4.+'
   */
   testCompile group: "org.loadui", name: "testFx", version: "3.1.2"
    testCompile "junit:junit:4.10"
    testCompile "org.testfx:testfx-core:4.0.+"
    testCompile "org.testfx:testfx-legacy:4.0.+", {
        exclude group: "junit", module: "junit"
    }
}

checkstyle {
    sourceSets = [sourceSets.main]
}

jacoco {
    toolVersion = "0.7.1.201405082137"
    reportsDir = file("$buildDir/reports/jacoco")
}

jacocoTestReport {
    reports {
        xml.enabled false
        csv.enabled false
        html.destination "$buildDir/reports/jacoco/html"
    }
        classDirectories = files('build/classes/')
}

test {

    jacoco {
        append = false
        destinationFile = file("$buildDir/jacoco/jacocoTest.exec")
        classDumpFile = file("$buildDir/jacoco/classpathdumps")
    }
}

Не знаю, поможет ли это, но вот моя структура проекта. введите описание изображения здесь


person Quatsch    schedule 16.01.2016    source источник


Ответы (1)


Недавно я начал использовать testfx с gradle.

Вот мой build.gradle:

plugins{
    id 'application'
    id 'com.github.johnrengelman.shadow' version '1.2.3'
}

mainClassName = "dialogio.Dialogio"
repositories {
    mavenCentral()
}
dependencies{
    compile 'com.google.guava:guava:19.0'
    compile 'org.controlsfx:controlsfx:8.40.10'
    testCompile 'org.loadui:testFx:3.1.0'
}
test {
  testLogging.showStandardStreams = true
}

По какой-то причине, если бы у меня было Button loginButton = find("#loginButton");, я бы получил исключение, о котором вы упомянули, хотя я установил fx: id. Это сработало только после того, как я установил идентификатор CSS:

введите описание изображения здесь

person chenshuiluke    schedule 19.04.2016