Tôi yêu cầu trợ giúp vì tôi không biết phải làm gì với lỗi này ... Vì vậy, trước hết hãy để tôi hiển thị stacktrace tôi nhận được khi chạy thử nghiệm thực sự đơn giản của tôi, điều kỳ lạ là thử nghiệm của tôi dường như không được thực thi ...? Tôi đang sử dụng Grails 2,0Tôi không thể chạy thử nghiệm chức năng Grails đơn giản bằng Geb và spock
Configuring Spring Security Core ...
... finished configuring Spring Security Core
| Server running. Browse to http://localhost:8080/
| Running 3 functional tests... 1 of 0
| Failure: initializationError(SecondaryTest)
| java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:166)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:102)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55)
| Running 3 functional tests... 2 of 0
| Failure: initializationError(SecondaryTest)
| java.lang.Exception: The @Rule '_gebReportingSpecTestName' must be public.
at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90)
at org.junit.internal.runners.rules.RuleFieldValidator.validatePublic(RuleFieldValidator.java:67)
at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:55)
at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50)
at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55)
| Running 3 functional tests... 3 of 0
| Failure: initializationError(SecondaryTest)
| java.lang.Exception: The @Rule '_gebReportingSpecTestName' must implement MethodRule or TestRule.
at org.junit.internal.runners.rules.RuleFieldValidator.addError(RuleFieldValidator.java:90)
at org.junit.internal.runners.rules.RuleFieldValidator.validateTestRuleOrMethodRule(RuleFieldValidator.java:73)
at org.junit.internal.runners.rules.RuleFieldValidator.validateField(RuleFieldValidator.java:56)
at org.junit.internal.runners.rules.RuleFieldValidator.validate(RuleFieldValidator.java:50)
at org.junit.runners.BlockJUnit4ClassRunner.validateFields(BlockJUnit4ClassRunner.java:170)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55)
| Completed 3 functional tests, 3 failed in 40ms
| Server stopped
| Tests FAILED - view reports in target/test-reports
Và đây các tập tin groovy:
SecondaryTest.groovy:
import pages.SignInPage
import geb.spock.GebReportingSpec
class SecondaryTest extends GebReportingSpec {
String getBaseUrl() { "http://localhost:8080/" }
File getReportDir() { new File("target/reports/geb") }
def "I am at siginin page"() {
when:
to SignInPage
then:
true
}
}
SignInPage.groovy:
package pages
import geb.Page
class SignInPage extends Page {
static url = "login/auth"
static at = { title == "Sign in" }
static content = {
}
}
nhờ
có! Cảm ơn !! giải pháp là SO rõ ràng tôi không thể nhìn thấy nó :-) –
Điều đó có nghĩa là tất cả các bài kiểm tra đơn vị trước đó của tôi phải được đổi tên thành somethingSpec? – raffian
Không chắc chắn ý bạn là gì bởi "các bài kiểm tra đơn vị trước đây của tôi". * Các lớp thử nghiệm Spock * phải kết thúc bằng 'Spec'. Lưu ý rằng câu hỏi này dành riêng cho Grails. –