Я работал над учебником Grails на https://guides.grails.org/creating-your-first-grails-app/guide/index.html. Я использую Grails 3.3.9, Groovy 2.4.15 и IntelliJ Idea 2019 2.2
Я дошел до раздела тестирования (раздел 9), когда столкнулся с этой странной проблемой. Тест-заглушка, создаваемый автоматически после каждой команды Grails create-~, выглядит следующим образом:
package org.grails.guides
import grails.testing.web.controllers.ControllerUnitTest import spock.lang.Specification
class MakeControllerSpe c extends Спецификация реализует ControllerUnitTest {
def setup() {
}
def cleanup() {
}
void "test something"() {
expect:"fix me"
true == false
} }
При выполнении с помощью команды:
. / grailsw test-app * .MakeControllerSpe c
Естественно происходит сбой со следующим выводом:
Не удалось выполнить задачу ': test'.
Были неудачные тесты. См. Отчет по адресу: file: /// C: /Users/Joe/Desktop/Groovy/grails-practice/myApp/build/reports/tests/test/index.html
Это все хорошо и как и ожидалось. Естественно, когда открывается файл index. html, отображаются результаты теста с подробной информацией о неудачном тесте. Но когда я изменяю раздел «Утверждение» теста на:
true == true
Затем запускаю тест, вывод:
FAILURE: сборка завершилась неудачей с исключением.
- Что пошло не так: не удалось выполнить задачу ':grationTest'.
Не найдено ни одного теста для данного объекта: [* .MakeControllerSpec]
Вывод на терминал (и IntelliJ, и git bash были используется) заявляет, что тесты не были найдены. Но когда я открываю файл index. html и просматриваю результаты теста, я вижу, что тест фактически был выполнен и что он прошел. После экспериментов кажется, что любые проходящие тесты отображают сообщение «Тесты не найдены ...», но неудачные тесты - нет. Похоже, что это проблема с журналированием, а не с самим тестом.