【问题标题】:Can't get Silverstripe tests to display results无法让 Silverstripe 测试显示结果
【发布时间】:2013-09-10 18:08:48
【问题描述】:

我在一个新的 Silverstripe 项目中添加了一些测试,它们位于 app/tests/app 是我重命名为 mysite_config.php 也有这个在它的 $project 变量中)。

我有两个文件:

APHPUnitTest.php

class APHPUnitTest extends SapphireTest {

    static $fixture_file = 'APHPUnitTest.yml';

    public function testURLGeneration() {

        $expectedURLs = array(
            'home' => 'home',
            'about' => 'about-us'
        );

        foreach($expectedURLs as $fixture => $urlSegment) {
            $obj = $this->objFromFixture('Page', $fixture);
            $this->assertEquals($urlSegment, $obj->URLSegment);
        }
    }
}

APHPUnitTest.yml

Page:
    home:
        Title: Home
    about:
        Title: About Us

测试出现在/dev/tests,但是当我运行它时,我只看到标题:

APHPUnitTest
dev → tests → APHPUnitTest

没有结果...我可以将die; 添加到我的测试.php 中,这些会阻止页面加载,因此文件执行良好,我不确定为什么这不起作用。

当我尝试从命令行运行测试时,我收到错误 class SapphireTest not found。从命令行运行的非银条 PHPUnit 测试工作正常。

【问题讨论】:

    标签: php phpunit silverstripe


    【解决方案1】:

    我已经解决了我的问题,但是有两个原因导致它,所以我想我会把它们都放在这里,希望它可以帮助其他人。

    我在这里遇到的主要问题与数据库权限有关。我正在运行测试的数据库用户仅对所讨论的 Silverstripe 站点具有权限。测试要求用户能够为每个测试创建单独的数据库。授予足够的权限解决了我的问题。

    需要更改的另一件事是我的phpunit.xml,当它需要更改为app/tests 时,它仍然是mysite/tests

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2021-12-17
      • 2018-06-10
      相关资源
      最近更新 更多