2012-01-22 2 views
2

Я создал простой проект плагинов Grails в STS. Я использую плагин Spring Security Core, который добавил несколько классов домена. Я создал интеграционный тест, который просто создает экземпляр одного из классов домена (User) и сохраняет его. Я получаю следующее сообщение об ошибке при выполнении теста интеграции:Тест интеграции Grails: классы доменов не работают

Failure: testSomething(com.resonance.rwp.core.tests.UserServiceTests) 
groovy.lang.MissingMethodException: No signature of method: com.resonance.rwp.core.domain.User.save() is applicable for argument types:() values: [] 
Possible solutions: save(), save(boolean), save(java.util.Map), wait(), any(), wait(long) 
    at com.resonance.rwp.core.tests.UserServiceTests.setUp(UserServiceTests.groovy:14) 

Я не понимаю, это кажется, что классы домена не привязывается через GORM по какой-то причине. Все, с чем я столкнулся, включает в себя людей, пытающихся использовать GORM в модульных тестах, но я определенно выполняю интеграционный тест. Буду признателен за любую оказанную помощь.

Вот источник, это действительно просто:

class UserServiceTests { 

@Before 
void setUp() { 
    User user = new User(username: "Test"); 
    user.save(); 
} 

@After 
void tearDown() { 
    // Tear down logic here 
} 

@Test 
void testSomething() { 
    fail "Implement me" 
} 
} 

Я также попытался двигаться все в самом тесте. Очевидно, что он не работает по методу setUp.

+0

Показать код для тестового класса. –

+0

Похоже, что трансформаторы Gorm AST по какой-то причине не запускаются. В дополнение к тестовому классу вы также можете указать версии STS, Grails и Groovy-Eclipse? Это может закончиться ошибкой в ​​STS, и если да, то лучше всего будет поднимать проблему в трекер-проблеме: https://issuetracker.springsource.com/browse/STS –

+0

Я добавил источник, спасибо за помощь! – SoWeLie

ответ

0

Похоже, что трансформаторы Grails AST по какой-то причине не работают в этом случае. Я предполагаю, что вы используете Grails 2.0, но вы на самом деле не сказали. Попробуйте выполнить чистую сборку внутри STS (Project -> Clean ...).

Я пробовал это в простом проекте Grails 2.0. Похоже, это работает для меня. Я думаю, что ваш лучший выбор - создать простой проект Grails, который имеет эту проблему, экспортировать его как zip и поднять проблему с jira. https://issuetracker.springsource.com/browse/STS

+0

Это Grails 2.0. Также забыл упомянуть, что это проект плагина. Не уверен, что это имеет значение. Это совершенно новый проект, и я попробовал чистоту. – SoWeLie

+0

поднимите ошибку и приложите проект. –

1

Просто была проблема, как ваш создавать некоторые тесты интеграции с Grails 2.0.0

интеграционные тесты не удалось при запуске, как grails test-app но сделал работу при запуске, как grails test-app --integration. К моему удивлению, модульные тесты каким-то образом загрязняли тестовую среду. Еще более удивительно, что удаление некоторых автогенераторов (т. Е. Пустых) модульных тестов помогло! Теперь тесты проходят с помощью обеих команд.

Там было обсуждение темы в another question, Аскер необходимо перенести его модульных тестов на Grails 2.0.0 способ написания тестов (т.е. JUnit 4 и тест Примеси Grails'), чтобы сделать его интеграционные тесты работа, вы можете увидеть, как это сделать в the docs.

Я попытаюсь подать отчет об ошибке, если я смогу воспроизвести его в минимальном приложении, созданном для этой цели. Надеюсь это поможет!

2

Я тоже был эта проблема на вновь созданный плагине, и обнаружил, что проблема в том, что вновь сформированные плагины не зависят от спящий режим. Я добавил следующее к BuildConfig.groovy:

plugins { 
    runtime ":hibernate:$grailsVersion" 
} 

Это привело к тому, что проблема исчезла.Я не достаточно хорошо знаком с Grails, чтобы иметь какую-либо теорию, почему сообщение об ошибке намекнуло фактическое существование методов настойчивости, как save, но, по крайней мере, я получил это работает :)

http://jira.grails.org/browse/GRAILS-9163?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Смежные вопросы