質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Codeception

Codeceptionは、容易にPHPのテストを行えるテスティングフレームワーク。単体テスト・機能テスト・受入テストの全てをサポートします。BDDスタイルの文法に対応し、テストコードの可読性に秀逸です。主要フレームワークもサポートしています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2761閲覧

codeceptionを用いてテストする際に、outputがログイン画面になる。

pe-ji

総合スコア17

Codeception

Codeceptionは、容易にPHPのテストを行えるテスティングフレームワーク。単体テスト・機能テスト・受入テストの全てをサポートします。BDDスタイルの文法に対応し、テストコードの可読性に秀逸です。主要フレームワークもサポートしています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/08/15 02:14

###前提・実現したいこと
codeceptionでテストコードを作っています。
ある画面でseeInsourceを実行すると、テストコード実行中に以下のエラーメッセージが発生しました。

###発生している問題・エラーメッセージ

Codeception PHP Testing Framework v2.2.3 Powered by PHPUnit 5.4.7 by Sebastian Bergmann and contributors. Acceptance Tests (1) ---------------------------------------------------------------------------------------------------------------- WelcomeCept: Perform actions and see result Signature: WelcomeCept Test: tests/acceptance/WelcomeCept.php Scenario -- I am on url "http://localhost/entry_report.html" I see in source "entryForm" FAIL ------------------------------------------------------------------------------------------------------------------------------------- Time: 7.41 seconds, Memory: 15.75MB There was 1 failure: --------- 1) WelcomeCept: Perform actions and see result Test tests/acceptance/WelcomeCept.php Step See in source "entryForm" Fail Failed asserting that /index.html?btn_event=logoff --> ソースコード Scenario Steps: 2. $I->seeInSource("entryForm") 1. $I->amOnUrl("http://localhost/entry_report.html") FAILURES! Tests: 1, Assertions: 1, Failures: 1.

###該当のソースコード

PHP

1<?php 2$I = new AcceptanceTester($scenario); 3$I->wantTo('perform actions and see result'); 4$I->amOnUrl('http://localhost/entry_report.html'); 5$I->seeInSource('entryForm'); 6?> 7

###試したこと
他のページでも試したのですが、
$I->amOnPage();を使っても、結局変わりません。
ログインされないと見れないページだからなのか? と思っています。
ログイン処理はjavascriptで行っています。
codeceptionはjavascriptのテストができないそうなのですが、原因の1つなのでしょうか...?

###補足情報(言語/FW/ツール等のバージョンなど)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ログイン処理はjavascriptで行っています。
codeceptionはjavascriptのテストができないそうなのですが、原因の1つなのでしょうか...?

まず、tests/acceptance.suite.ymlを確認してみてください。
PhpBrowserモジュールを使っている場合、javascriptは処理されません。
詳しくは公式ドキュメントに説明を譲りますが、PhpBrowserの中身はGuzzleというライブラリで、末端はcurlが使われています。一般的なブラウザのようには動作しません。

PhpBrowser - Codeception - Documentation

javascriptの動作も再現させたい場合は、SeleniumServerを別途立て、WebDriverを用いることができます。

WebDriver - Codeception - Documentation

その他、もし症状を追っかけたい場合、_savePageSourceメソッドなどを使ってどのようなHTMLを取得できているのかを確認してみると、解決の糸口に繋がるかもしれません。
http://codeception.com/docs/modules/PhpBrowser#_savePageSource

質問内容からお答えできる範囲で記載してみました。ご参考になれば幸いです。

投稿2016/08/15 17:25

nnno

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pe-ji

2016/08/16 08:30

ありがとうございます! WebDriverをphamtomJSにして、以下のとおりに行ってみました。 ``` class_name: AcceptanceTester modules: enabled: [WebDriver] config: WebDriver: url: '' browser: phantomjs capabilities: javascriptEnabled: true ``` そしてjsが動作しました! ありがとうございます!! `_savePageSource`メソッドですね。 `$I->makeScreenshot();`を使っていましたが、そのメソッドも用いてみようと思います。 [_savePageSource hidden API method, expected to be used from Helper classes Saves HTML source of a page to a file * param $filename] [参考](http://codeception.com/docs/modules/WebDriver#_savePageSource) hidden API methodというのがひっかかりますが、、調べてみます:smiley: 重ねてお礼申し上げます。:bow:
pe-ji

2016/08/16 08:31

あ、コメントへの返信にはMarkdown記法対応してないのか...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問