Указание местоположения модульного теста в Gradle

Я намочил ноги с Gradle для школьного проекта (не задания), и у меня есть этот проект, который разделен на две папки: src/main/scala и src/test/scala.

Как вы, наверное, заметили, в тестовой папке хранятся мои модульные тесты, но по какой-то причине я не могу заставить Gradle найти их и настроить так, как нужно. Я использую Scala со ScalaTest для этого проекта.

Есть ли способ сообщить Gradle, где искать тестовые файлы? Или есть какое-то логическое объяснение тому, почему он не обнаруживает мои файлы?

Это мой build.gradle:

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'scala'

repositories {
    mavenCentral()
}

sourceSets {
    main {
        scala {
            srcDirs = ['src/scala']
        }
    }
    test {
        scala {
            srcDirs = ['test/scala']
        }
    }
}

dependencies {
    compile 'org.scala-lang:scala-library:2.10.3'
    testCompile 'junit:junit:4.10'
    testCompile 'org.scalatest:scalatest_2.10:2.1.+'
}

test {
    useJUnit()
    testLogging {
        // Show that tests are run in the command-line output
        events 'started', 'passed'
    }
}   

person Mr. Adobo    schedule 09.03.2014    source источник
comment
Это стандартные места. Если ваши тесты не работают, значит, что-то еще не так. Откуда ты знаешь, что они не бегают?   -  person Oliver Charlesworth    schedule 10.03.2014
comment
Отчет о тестировании сборки выходит пустым.   -  person Mr. Adobo    schedule 10.03.2014
comment
Не уверен, что это актуально, но мои модульные тесты - ScalaUnit.   -  person Mr. Adobo    schedule 10.03.2014
comment
Что такое ScalaUnit? Вы имеете в виду СкалаТест? Знаете ли вы, что код Scala должен помещаться в src/main/scala или src/test/scala, а не .../java?   -  person Peter Niederwieser    schedule 10.03.2014
comment
Да, СкалаТест. Нет, я не знал. Позвольте мне попробовать это. РЕДАКТИРОВАТЬ: я изменил его, но все равно не повезло. :(   -  person Mr. Adobo    schedule 10.03.2014


Ответы (3)


Как описано в плагине scala для Gradle, вы можете изменить расположение исходный и тестовый каталог, добавив что-то вроде следующего:

sourceSets {
    main {
        scala {
            srcDirs = ['src/scala']
        }
    }
    test {
        scala {
            srcDirs = ['test/scala']
        }
    }
}
person ditkin    schedule 09.03.2014
comment
Я пробовал это, и это все еще не работает. Я обновил основной пост своим build.gradle. - person Mr. Adobo; 10.03.2014

Я нашел правильный build.gradle, чтобы заставить его работать благодаря ответу @ditkin. Оказывается, мне нужно было поставить полные src/main/scala и src/test/scala.

apply plugin: 'scala'
apply plugin: 'eclipse'

repositories {
    mavenCentral()
}

sourceSets {
    main {
        scala {
            srcDirs = ['src/main/scala']
        }
    }
    test {
        scala {
            srcDirs = ['src/test/scala']
        }
    }
}

dependencies {
    compile 'org.scala-lang:scala-library:2.10.3'
    testCompile 'junit:junit:4.10'
    testCompile 'org.scalatest:scalatest_2.10:2.1.+'
}

test {
    useJUnit()
    testLogging {
        // Show that tests are run in the command-line output
        events 'started', 'passed'
    }
}   
person Mr. Adobo    schedule 10.03.2014
comment
Весь блок sourceSets является избыточным, как и блок useJUnit(). Это уже значения по умолчанию. - person Peter Niederwieser; 10.03.2014
comment
Ваша проблема, вероятно, была другой, так как это буквально значения по умолчанию. - person Peter Niederwieser; 10.03.2014

Посмотрите здесь подробное объяснение того, как работают тесты и как их настроить http://www.gradle.org/docs/current/userguide/java_plugin.html#sec:java_test

person user3399520    schedule 09.03.2014
comment
Пожалуйста, попробуйте объяснить, что включает в себя эта ссылка, так как эта ссылка может быть удалена из источника в будущем, и тогда мы не сможем получить доступ к информации. - person Jatin; 10.03.2014