在Codeception中设置Bundle

5

我尝试为我的Symfony2项目设置codeception,该项目已经有4个工作的bundle和它们的PHPUnit测试用例。现在我想添加codeception测试用例,特别是验收测试,但当我“引导”codeception时,我发现所有生成的代码都在我的主要结构中。由于我的应用程序已经组织成bundle,因此我希望保持概念也适用于我的测试用例。特别是因为我已经在我的bundles中拥有了PHPUnit测试用例。官方的s2 codeception并没有真正涵盖这一点。所以对我来说,有一些问题:

  1. 如何设置codeception使其在我的bundles中工作
  2. 如何使用一个命令运行所有现有的PHPUnit测试用例和我的codeception测试用例?
2个回答

2
我刚刚以类似的方式设置了那个。
Codeception有一个-c开关可以满足您的需求,即:
vendor/bin/codecept bootstrap src/Acme/ExampleBundle

接着执行以下步骤:

vendor/bin/codecept run -c src/Acme/ExampleBundle

我不了解你的第二个问题。至少对于单元测试,将它们转换为Codeception测试是简单的,特别是因为我的测试都继承自一个抽象类,所以只需要进行大约10行更改,主要是设置方面。


你也可以将以下行添加到根目录的 codeception.yml 文件中,而不必每次都指定 -c 标志:include: - src/Acme/ExampleBundle然后像平常一样运行 vendor/bin/codecept run。它会找到 bundle 的 codeception.yml 配置文件,并在同一次运行中包含所有测试。 - teaforchris

2

@Tom,这行不通,因为Symfony2模块正在查找bootstrap.php.cache文件,该文件仍位于您的Symfony2应用程序的根目录中!我的解决方案是在您的bundle中创建一个到app/文件夹的链接!然后它就可以工作了!

在{your-root}/src/{your-app}/{your-bundle}中:

ln -s ../../../app .

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接