Phabricator:运行 单元测试

Phabricator: run unit test

我想为 Phabricator 编写自定义单元测试。

为此,我查看了 Writing Unit Tests in Phabricator 的文档并在 ./phabricator/src/infrastructure/testing/testcase/PhabricatorTrivialTestCase.php 创建了一个文件(用于使用简单的 phabricator 测试用例),内容如下

class PhabricatorTrivialTestCase extends PhabricatorTestCase {

  private $two;

  public function willRunOneTest($test_name) {
    // You can execute setup steps which will run before each test in this
    // method.
    $this->two = 2;
  }

  public function testAllIsRightWithTheWorld() {
    $this->assertEqual(4, $this->two + $this->two, '2 + 2 = 4');
  }

}

当我尝试 运行 它时,我收到以下消息。

$ cd ./phabricator
$ arc unit src/infrastructure/testing/testcase/
No tests to run.

为什么我不能 运行 按照记录进行测试?是否缺少某些步骤?

终于找到解决办法了。

有几件事必须做。

  • 将测试文件移动到目录 ./src/extensions/__tests__(文件夹必须是 __tests__
  • 已将 class PhabricatorTrivialTestCase 重命名为 SomePhabricatorTrivialTestCase(因为名称为 PhabricatorTrivialTestCase 的测试已经存在)
  • 运行 arc liberate(使 SomeTrivialPhabricatorTestCase 可用于测试)
  • 提交更改
  • 运行 arc unit --everything(因为 arc unit returns "No tests to run",但是 arc unit --everything 有效