我尝试使用PHPUnit为10月CMS插件的自定义路由编写一些测试,但遇到一些错误,导致测试运行正常。
每个测试在单独运行时通过,但是当作为一组运行时,第一个测试将通过,其余测试将失败并出现500个错误。失败测试的错误消息是:
in Resolver.php line 44
at HandleExceptions->handleError('8', 'Undefined index: myThemeName',
'/Users/me/src/myProject/vendor/october/rain/src/Halcyon/Datasource/
Resolver.php', '44', array('name' => 'myThemeName')) in Resolver.php line
44
测试用例如下所示:
class RoutesTest extends PluginTestCase
{
protected $baseUrl = "/";
public function setUp() {
parent::setUp();
DB::beginTransaction();
}
public function tearDown()
{
DB::rollBack();
parent::tearDown();
}
public function testRootPath()
{
$response = $this->call('GET', '/');
$this->assertEquals(200, $response->status());
}
public function testIntroPath()
{
$response = $this->call('GET', '/intro');
$this->assertEquals(200, $response->status());
}
etc...
}
答案 0 :(得分:0)
我不知道原因,但是如果您在--process-isolation
电话上添加标记phpunit
,我认为可能是缓存问题
答案 1 :(得分:0)
我们最终使用curl发出实际请求并从中获取响应代码。
ng-if
现在所有测试都没有使用隔离过程。
答案 2 :(得分:0)
不幸的是没有解决方案,只是一个不同的角度。我认为这与十月"测试"有关。配置(config / testing / cms.php)。 这将在目录" tests / fixtures / themes / pages /"中查找文件。它在那里找到的index.htm文件,将url-parameter设置为' /'。 这就是为什么phpunit会找到它,而不是其他网址。 我已经看到了针对该问题的几个建议的解决方案,但它们都没有为我工作:
如果我能弄清楚如何以正确的方式访问我的主题页面之一,生活会变得如此简单........