我想在我的Laravel应用程序中运行一些验收测试。虽然功能测试触发测试环境,但验收测试不会。它是验收测试的缺陷还是特征?这个困扰我的主要问题是,它没有使用(+填充+清理)测试数据库,它只连接到dev数据库(当没有指定其他ENV时,例如测试,生产时使用)当我多次运行这些测试时经常会失败。在Codeception中的验收测试是否应该在测试环境中运行? (Laravel4 + Codeception)
这是我的配置:
codeception.yml
paths:
tests: app/tests
log: app/tests/_log
data: app/tests/_data
helpers: app/tests/_helpers
settings:
bootstrap: _bootstrap.php
suite_class: \PHPUnit_Framework_TestSuite
colors: true
memory_limit: 1024M
log: true
modules:
config:
Db:
dsn: 'mysql:host=localhost;dbname=testdb'
user: 'root'
password: 'root'
dump: 'app/tests/_data/dump.sql'
populate: true
cleanup: true
acceptance.suite.yml
class_name: WebGuy
modules:
enabled:
- PhpBrowser
- WebHelper
- Db
config:
PhpBrowser:
url: 'http://localhost/'
functional.suite.yml
class_name: TestGuy
modules:
enabled: [Filesystem, TestHelper, Laravel4, Db]
感谢您的帮助!
我有这个相同的问题。我的代码验收测试不会在'测试'环境下运行。我试图将Laravel4包含在acceptance.suite.yml中 - 这并没有改变任何东西。 – Laurence
从我可以告诉 - Codeception运行每个测试的'两''周期。其中一个作为'测试'环境运行,但另一个不在'测试'环境中运行。我可以证实这一点 - 因为如果你强制两个测试在'测试'环境中运行,那么你的路由不能正常工作(因为它们通常是禁用测试的)。 – Laurence
@Fabrizio - 你需要什么额外的信息?我已经提供了答案? – Laurence