仮想ホストでコードセプションを使用している人はいますか? もしそうなら、どうやってそれを機能させましたか?
2 つのテスト マシン (1 つは WAMP、もう 1 つは Ubuntu) があり、両方とも仮想ホストがセットアップされています。非常に基本的な codeception 受け入れテストを実行すると、仮想ホストのインデックス ページではなく、既定のページに移動しようとしているように見える応答が返されます。
私の仮想ホストは test と呼ばれます。私の/etc/hosts
ファイルの一部は次のようになります。
127.0.0.1 test
/etc/apache2/sites-enabled/test
次のようになります。
<VirtualHost *:80>
ServerName test
DocumentRoot '/home/joel/projects/web/test'
<Directory '/home/joel/projects/web/test'>
Options -Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
ほとんどの場合、デフォルトの受け入れスイート セットアップ ファイルを使用しています。唯一の変更は、仮想マシンの名前を に入力することでしたtests/acceptance.suite.yml
:
class_name: WebGuy
modules:
enabled:
- PhpBrowser
- WebHelper
config:
PhpBrowser:
url: 'http://test'
には/home/joel/projects/web/test/index.html
、非常に単純な Web ページがあります。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
Hello, World!
</body>
</html>
このページは、wget や curl など、試したどのブラウザーでも正常に読み込むことができます。
私のコード受容テストも非常に簡単です。でtests/acceptance/WelcomeCept.php
:
<?php
$I = new WebGuy($scenario);
$I->amOnPage('/');
$I->see('Hello');
このテストを実行しようとすると、次の出力が得られます。
Codeception PHP Testing Framework v1.6.6
Powered by PHPUnit 3.7.24 by Sebastian Bergmann.
Suite unit started
Suite functional started
Suite acceptance started
Running WelcomeCept.php - Failed
Time: 15 ms, Memory: 20.25Mb
There was 1 failure:
---------
1) WelcomeCept.php
Ups, I couldn't see "Hello",
Failed asserting that
--> It works! This is the default web page for this server. The web server software is running but no content has been added, yet.
--> contains "hello".
Scenario Steps:
2. I see "Hello"
1. I am on page "/"
FAILURES!
Tests: 1, Assertions: 1, Failures: 1.
私のデフォルトの Web ページ (127.0.0.1) は、「動作します!」というメッセージを返します。メッセージですが、仮想ホストに対するものはすべて「Hello, World」ページに送られます。コードセプションが私の仮想ホストに行かない理由はありますか? 問題の原因を追跡する方法についてのアイデアはありますか?
ありがとうございました!
――ジョエル
編集:
私はそれを考え出した。ではポート番号が必要だったtests/acceptance.suite.yml
ので、これは機能しません。
config:
PhpBrowser:
url: 'http://test'
しかし、これはうまくいきます:
config:
PhpBrowser:
url: 'http://test:80'
これはどこにも文書化されていないようで、直感的ではないため、ポート 80 をデフォルトにするプル リクエストを送信しました。これはすぐには問題にならないかもしれません。