振る舞いテスト(Acceptance Testing)の動作検証中にめっちゃくちゃハマってしまったのでメモっておきますorz
複数サイトにまたがってアクセスするので、受け入れテストスイートの設定ファイル(acceptance.suite.yml)内のurl欄を空欄にしたうえで、以下のようなテストコードを書きました。
1 2 |
$I = new AcceptanceTester($scenario); $I->amOnPage("http://hogehoge.com"); |
このコードを、PhpBrowser上で動かすと普通に動くのですが、Firefox上で動かすとエラーが出てしまいます。
1 2 |
[Facebook\WebDriver\Exception\UnknownCommandException] GET /session/5605e11f-6b3f-41d7-b5d5-bf60309b0bd0/log/types did not match a known command |
一見どういう意味なのか分からないのですが、「codecept run –debug」コマンドで動作の内容を見ながら確認すると、GET周りで変な挙動が……
1 2 |
I am on page "http://hogehoge.com" [GET] /http://hogehoge.com |
なぜかURLの頭に「/」がついてる!
まぁamOnPage()は相対URL用のメソッドだから、スラッシュが頭についちゃうんでしょうかね。
amOnUrl()を使ってみたら問題なく動きました。
でもPhpBrowserでは普通に動いてしまうのは紛らわしい……(´・ω・`)