【问题标题】:Automatically running PHPUnit tests with Arcanist (Phabricator)使用 Arcanist (Phabricator) 自动运行 PHPUnit 测试
【发布时间】:2014-11-11 16:24:54
【问题描述】:

一个“简单”的问题:如何使用 Arcanist 自动运行 PHPunit 测试?

根据documentation 我应该先加载一个自定义库。如here 所述,我应该创建一个.arcconfig 文件并加载相应的库。

所以:我在我的项目中创建了一个目录“arc_libs”,并在目录“src”中使用了arc liberate 来生成所需的文件。我现在的配置是:

{
  "project.name" : "arc_libs",
  "phabricator.uri" : "https://phabricator.xxx.xxx.net/",
  "unit.engine" : "PhpunitTestEngine",
  "load" : ["arc_libs/src"]
}

库确实已加载,因为我可以运行 arc unit

[matthijs@xx xxx]$ arc unit
No tests to run.

但正如您所见,没有要运行的测试。我们将测试保存在“project_root/tests”中,据我了解documentation 我应该在“模块”中创建一个 __tests__ 目录(可能是我的 arc_libs 目录?)

但是我想运行我现有的 PHPunit 测试文件,而不是我需要创建的新测试。我尝试使用符号链接等,但我无法让它工作。奥术师没有检测到我的测试。

所以我的问题是:如何使用 arcanist 自动运行我现有的 PHPunit 测试?

(注意我们使用 arc diff 应该自动运行 arc unit

【问题讨论】:

    标签: phpunit phabricator arcanist


    【解决方案1】:
    $ arc unit --help
    
      unit [options] [paths]
      unit [options] --rev [rev]
          Supports: git, svn, hg
          Run unit tests that cover specified paths. If no paths are specified,
          unit tests covering all modified files will be run.
    

    默认情况下,arc lint 和 arc unit 旨在用作更改过程的一部分,因此默认情况下它仅作用于更改的文件。奇怪的是,您没有任何更改的文件。您可能想要指定一些路径,或者运行arc unit --everything 来运行所有测试。

    【讨论】:

      【解决方案2】:

      您链接的文档不会很有用 - 它针对想要测试其库的 Phabricator 开发人员。 There is some user-facing documentation for customising unit test tasks,但这不是很好。幸运的是,让 Arcanist 使用包含的 PhpunitTestEngine 运行项目的单元测试非常容易:

      1. 在项目根目录中准备一个phpunit.xml 文件。这应该是a standard PHPUnit configuration file。您可以通过运行 phpunit -c phpunit.xml 来测试它。
      2. phpunit_config 选项添加到您的.arcconfig

        {
          "phabricator.uri": "https://phabricator.xxx.xxx.net/",
          "unit.engine": "PhpunitTestEngine",
          "phpunit_config": "phpunit.xml"
        }
        
      3. 运行arc unit 进行测试。

      尽管用户文档很薄,the source code for PhpunitTestEngine 有一些 cmets 并且相当简洁。如果遇到问题,通读测试引擎代码可以帮助您找到问题。

      【讨论】:

      • 感谢您的回复。我们已经使用了单独的 phpunit.xml 我将配置更改为您指定的内容,但不幸的是 arc 仍然认为没有要运行的测试。我很乐意发布我们的 phpunit xml 文件,但我认为这无关紧要,只是运行 phpunit 就像一种魅力。我会研究一下源代码,看看有没有什么我可以使用的。
      • 这个选项仍然没有运气,如果其他人可以推荐一些东西,将不胜感激!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-21
      • 2013-12-24
      • 2017-08-05
      • 1970-01-01
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多