使用Arcanist(Phabricator)自动运行PHPUnit测试
一个“简单”的问题:如何使用Arcanist自动运行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/", "
.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很有吸引力。我将查看源代码,看看是否有什么我可以使用的。这个选项仍然没有运气,如果其他人能推荐一些东西,我将不胜感激!