助けてください。GebとSpockでGrailsテストをパスするには? (grails-functional-test-developmentを使用)
私は身体検査/機能/ページディレクトリの下
<div id="page-wrap">
<div class="login-block">
<g:if test="${flash.message}">
<h3 class='login_message'>${flash.message}</h3>
</g:if>
<g:else>
<h3>IMMS Login</h3>
</g:else>
<form action='${postUrl}' method='POST' id='loginForm' class='cssform' autocomplete='off'>
<p>
<label for='username'><g:message code="auth.username.label" default="User Name"/></label>
<input type='text' class='text_' name='j_username' id='username'/>
</p>
<p>
<label for='password'><g:message code="auth.password.label" default="Password"/></label>
<input type='password' class='text_' name='j_password' id='password'/>
</p>
<p class="submit-wrap">
<input type='submit' value="${message(code: 'default.button.Login.label', default: 'Login')}"/>
</p>
</form>
</div>
<div class="image-block"></div>
</div>
内側に次のコードを使用してページのログイン/ auth.gsp
を持って、私はLoginPage
package pages
import geb.Page
class LoginPage extends Page {
static url = "login/auth/"
static at = {
userName.text() == ""
}
static content = {
userName { $("input", name : "j_username") }
password { $("input", name : "j_password") }
loginButton(to: IndexPage){ $(".submit-wrap").find("input").first() }
}
}
そして、ここを持っています私のテストコードは
import geb.spock.GebReportingSpec
import pages.*
import spock.lang.Stepwise
@Stepwise
class BaseSpec extends GebReportingSpec {
String getBaseUrl() {
return "http://localhost:8080/IMMS/"
}
def "open URL"() {
when:
to LoginPage
then:
at LoginPage
}
}
私はテストを実行し、失敗しました。これはレポートです
<?xml version="1.0" encoding="UTF-8" ?>
<testsuite errors="0" failures="1" hostname="SGCDMSSVR" name="BaseSpec" tests="1" time="24.715" timestamp="2011-07-12T07:00:04">
<properties />
<testcase classname="BaseSpec" name="open URL" time="24.693">
<failure message="Condition not satisfied:
at LoginPage
|
false
" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: Condition not satisfied:
at LoginPage
|
false
at BaseSpec.open URL(BaseSpec.groovy:18)
</failure>
</testcase>
<system-out><![CDATA[--Output from open URL--
]]></system-out>
<system-err><![CDATA[--Output from open URL--
]]></system-err>
</testsuite>
私を助けてくれると思いますか?いくつかの設定が欠落しているか、jQueryのようなナビゲーションが正しくありませんか?
テストのために、私は "Functional Test Development"プラグインを使用しています。
更新: 当初、私は、私は単にデフォルトのドライバがHTMLUnitであることに気づいた正確The sample. からGebConfigを使用。
コマンドコンソールからFunctional Test Development機能を使用して機能テストを実行すると、
grails develop-functional-tests
すべての機能テストを実行するオプションを選択します。コンソールに失敗したテストが表示されます。
デフォルトのドライバをFirefoxに変更するとします。 それはまだ失敗しましたが、私はそれが自動的にFirefoxブラウザを開き、URLを開く見ることができます:
http://localhost:8080/IMMS/login/auth.gsp
、それは私が、これはテストが失敗した理由だと思うURL 404を開くことができませんでした。
私はIDEから以下を実行しようとしました。
grails test-app -functional
firefoxブラウザが起動し、テストスクリプトとテストパスが書き込まれました。
ここではタイトルを改訂します。ここでは、grailsの機能テスト用のdevプラグインに焦点を当てています。 あなたはこのプラグインを試したことがありますか?答えはありますか?おかげさまで
PS:質問を改訂できますか?または私はstackoverflowで新しい質問を作成する必要がありますか?
ここでは暗闇の中で撮影していますが、 'LoginPage'の' url'プロパティ( 'login/auth /'の代わりに 'login/auth')の末尾にスラッシュを入れてみてください。私はGebがそうでなければ '.gsp'を最後に追加するのはなぜか分かりません。答えのために –