使用Arcanist(Phabricator)自动运行PHPUnit测试

使用Arcanist(Phabricator)自动运行PHPUnit测试,phpunit,phabricator,arcanist,Phpunit,Phabricator,Arcanist,一个“简单”的问题:如何使用Arcanist自动运行PHPunit测试 根据,我应该首先加载一个自定义库。如上所述,我应该创建一个.arcconfig文件并加载相应的库 因此:我在我的项目中创建了一个dir“arc_libs”,在dir“src”中,我使用arc-release生成所需的文件。我的配置现在是: { "project.name" : "arc_libs", "phabricator.uri" : "https://phabricator.xxx.xxx.net/", "

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

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

因此:我在我的项目中创建了一个dir“arc_libs”,在dir“src”中,我使用
arc-release
生成所需的文件。我的配置现在是:

{
  "project.name" : "arc_libs",
  "phabricator.uri" : "https://phabricator.xxx.xxx.net/",
  "unit.engine" : "PhpunitTestEngine",
  "load" : ["arc_libs/src"]
}
因为我可以运行
arc单元,所以库确实被加载了

[matthijs@xx xxx]$ arc unit
No tests to run.
但是正如您所看到的,没有要运行的测试。我们将测试保存在“project_root/tests”中,据我所知,我应该在“模块”中创建一个uu tests_uuuuu目录(可能是我的arc_libs目录?)

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

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


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

您链接的文档不会很有用-它针对的是希望测试其库的Phabricator开发人员,但这并不好。幸运的是,使用附带的
phpunitestengine
,让Arcanist运行项目的单元测试非常容易:

  • 在项目根目录中准备一个
    phpunit.xml
    文件。这应该是。您可以通过运行
    phpunit-cphppunit.xml
    来测试这一点
  • phpunit\u config
    选项添加到
    .arcconfig

    {
      "phabricator.uri": "https://phabricator.xxx.xxx.net/",
      "unit.engine": "PhpunitTestEngine",
      "phpunit_config": "phpunit.xml"
    }
    
  • 运行
    arc单元
    进行测试 尽管用户文档很简单,有一些注释,而且相当简洁。如果遇到问题,通读测试引擎代码可以帮助您找到问题所在

    $ 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
    来运行所有测试

    谢谢你的回复。我们已经使用了一个单独的phpunit.xml,我将配置更改为您所指示的,但不幸的是,arc仍然认为没有要运行的测试。我很乐意发布我们的phpunitxml文件,但我认为这与此无关,只是运行phpunit很有吸引力。我将查看源代码,看看是否有什么我可以使用的。这个选项仍然没有运气,如果其他人能推荐一些东西,我将不胜感激!