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

2024-05-31

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

根据文档 https://secure.phabricator.com/book/phabcontrib/article/unit_tests/我应该首先加载一个自定义库。就像声明的那样here https://secure.phabricator.com/book/phabricator/article/arcanist_lint_unit/我应该创建一个.arcconfig文件并加载适当的库。

所以:我在我的项目和我使用的目录“src”中创建了一个目录“arc_libs”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”中,据我了解文档 https://secure.phabricator.com/book/phabcontrib/article/unit_tests/我应该在“模块”中创建一个 __tests__ 目录(可能是我的 arc_libs 目录?)

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

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

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


您链接的文档不会很有用 - 它针对的是想要测试其库的 Phabricator 开发人员。有一些面向用户的文档用于自定义单元测试任务 https://secure.phabricator.com/book/phabricator/article/arcanist_lint_unit/,但这并不好。幸运的是,让 Arcanist 使用包含的命令来运行项目的单元测试非常容易PhpunitTestEngine:

  1. 准备一个phpunit.xml文件位于项目根目录中。这应该是标准 PHPUnit 配置文件 https://phpunit.de/manual/current/en/appendixes.configuration.html。您可以通过运行来测试这一点phpunit -c phpunit.xml.
  2. Add a phpunit_config选项给你的.arcconfig:

    {
      "phabricator.uri": "https://phabricator.xxx.xxx.net/",
      "unit.engine": "PhpunitTestEngine",
      "phpunit_config": "phpunit.xml"
    }
    
  3. Run arc unit来测试一下。

尽管用户文档很少,的源代码PhpunitTestEngine https://secure.phabricator.com/diffusion/ARC/browse/master/src/unit/engine/PhpunitTestEngine.php有一些评论并且相当简洁。如果遇到问题,通读测试引擎代码可以帮助您找到问题所在。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Arcanist (Phabricator) 自动运行 PHPUnit 测试 的相关文章

  • 测试递归方法

    我想测试一个方法 public function get key if time this gt driver gt get key if key self LAST UPDATE KEY time new DateTime this gt
  • 默认情况下,PHPUnit 模拟对象从未期望过

    如果没有正式定义的期望 有没有办法告诉 phpunit 模拟对象永远不要期望方法调用 在我看来 不要对每种方法都抱有期望是没有道理的 所以 phpunit 没有任何功能 仅当您想完全确保某些方法不会被调用时 才应使用 从不 期望 无论如何
  • Symfony 2 功能测试外部 URL

    无论我做什么 我总能得到一个 Symfony Component HttpKernel Exception NotFoundHttpException 否 已找到 的路线 in crawler gt text 当我尝试使用以下命令请求外部
  • 使用 phpunit 9.5 捕获警告、通知和弃用

    Quoting https phpunit readthedocs io en 9 5 writing tests for phpunit html testing php errors warnings and notices https
  • 如何使用 PEAR 安装程序完全删除 PHPUnit?

    几天前 我使用 PEAR 安装程序安装了 PHPUnit 我还安装了 Selenium RC 用于 PHP 测试 现在我想卸载它 同时删除所有相关的文件夹和文件 我运行了以下命令 pear uninstall phpunit PHPUnit
  • phpunit 避免模拟的构造函数参数

    有什么方法可以避免 phpunit 调用模拟对象的构造函数 否则我需要一个模拟对象作为构造函数参数 另一个模拟对象作为构造函数参数 等等 api 似乎是这样的 getMock className methods array array ar
  • 在 phpunit 中 __construct 与 setup 之间有什么区别?

    我很想知道在测试类 construct 中创建对象是一种很好的做法 或者我们应该始终使用 setup teardown 方法 或 setUpBeforeClass tearDown AfterClass 方法 我知道每个测试都会调用 set
  • 独立 Symfony2 包内的功能测试

    我需要直接在独立包中进行一些功能测试 我不想测试控制器 只是测试真实服务之间的一些交互 我想知道是否有标准 最佳方法可以做到这一点 我用一种方法做到了 但想知道是否有更好的方法 这是我自己的解决方案 我总结了在独立包中测试的所有过程 1 首
  • 如何对 Laravel Mailable 进行断言

    在测试中 我想使用以下方法对 Mailable 做出一些断言Mail assertSent 像这样 Mail assertSent MyMailable class function mail use user return mail gt
  • 为什么 symfony DOMCrawler 对象无法在依赖的 phpunit 测试之间正确传递?

    我有一个适用于我的 symfony 应用程序的 phpunit 测试套件 在该测试文件中 我在不同的测试之间有一些依赖关系 并在依赖关系之间传递一个 DOMCrawler 对象 这样我就不必每次都导航到它 但是 在采用我所做的方法时 您似乎
  • 如何使用 phpunit 测试内部数组

    我必须测试带有内部数组的数组 我的数组如下所示 testdata Array 0 gt Array label gt Ammy idr gt user7 rel gt 7 1 gt Array label gt sidh idr gt us
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • 模拟/存根在 PHPUnit 中实现 arrayaccess 的类的对象

    这是我正在为其编写测试套件的类的构造函数 它扩展了 mysqli function construct Config c store config file this gt config c do mysqli constructor pa
  • 单元测试魔术方法

    当涉及到 PHP 中魔术方法的单元测试实现时 调用这些方法的推荐方法是什么 我看到三个可用选项 显式 直接调用它们 object gt get someValue 间接调用它们 使用任何旨在触发它们的操作 object gt someVal
  • 使用 Arcanist (Phabricator) 自动运行 PHPUnit 测试

    一个 简单 的问题 如何使用 Arcanist 自动运行 PHPunit 测试 根据文档 https secure phabricator com book phabcontrib article unit tests 我应该首先加载一个自
  • Symfony2 Beta3 中不断收到“您请求了一个不存在的服务“test.client””

    我正在尝试设置单元测试 但每当我运行 phpunit c app 时 我都会收到此错误 Symfony Component DependencyInjection Exception ServiceNotFoundException 您请求
  • Symfony 2 中实体管理器和 phpunit 的问题

    我的 phpunit 中的实体管理器有问题 这是我的测试 public function testValidChangeEmail client self createAuthClient user password crawler cli
  • 关于如何在 PHPUnit 中使用 setUp() 和tearDown() 有真实的例子吗?

    Methods setUp and tearDown 在每次测试之前和之后调用 但实际上 有没有任何真实的例子说明我为什么需要这个 检查其他人的测试 我总是看到类似的东西 public function setUp this gt test
  • 支持链接方法的模拟对象

    我想知道是否有一种相当简洁的方法来模拟支持方法链接的对象 例如 数据库查询对象可能有一个如下所示的方法调用 result database gt select my table gt where array my field gt a va
  • phpunit测试调用其他需要mock的类方法的方法

    我正在尝试创建一个非常标准的单元测试 在其中调用一个方法并断言它的响应 但是我正在测试的方法调用同一类中的另一个方法 该方法做了一些繁重的工作 我想模拟该方法 但仍按原样执行我正在测试的方法 仅使用从调用另一种方法返回的模拟值 我简化了示例

随机推荐

  • 获取查询的行号

    我有一个查询将返回一行 当表排序时 有什么方法可以找到我正在查询的行的行索引吗 我试过了rowid但当我期待第 7 行时却得到了 582 Eg CategoryID Name I9GDS720K4 CatA LPQTOR25XR CatB
  • pandas-更改重采样时间序列的开始和结束日期

    我有一个时间序列 我将其重新采样到这个数据框中df 我的数据是从6月6日到6月28日 它希望将数据从6月1日延长到6月30日 计数列仅在较长时间内具有 0 值 而我的实际值是从 6 日到 28 日 Out 123 count Timesta
  • 浏览器会自动插入哪些 DOM 元素?

    我正在生成 XPaths 服务器端以供客户端使用 我很困惑为什么only表路径 即内容在td 在 DOM 中找不到 事实证明 现代浏览器 至少 Chrome 和 Firefox 插入了tbody文档加载时在表格行周围添加标签 看为什么浏览器
  • 如何连接多个字符串? [复制]

    这个问题在这里已经有答案了 如何将 stringList 中的所有字符串合并为一个而不打印它 例如 s joinStrings very hot day returns string print s Veryhotday 感觉有点倒退 但是
  • Node.js 中的 Twilio 短信回复

    我正在使用 node js 中的 twilio 编写移动通知系统 目前可以向用户发送短信 但我希望用户能够回复我 我需要收集用户发送文本的电话号码以及消息的内容 以查询我的 mongoosedb 我找不到太多这方面的信息 因此非常感谢您的帮
  • android.R.layout.simple_list_item_1是什么?

    在我看到的所有示例中 他们在创建 ArrayAdapter 时仅使用 android R layout simple list item 1 android R layout simple list item 1是什么 它只是一个名为sim
  • MVC4 - ContextDependentView - 是什么意思?

    我刚刚开始使用 MVC4 我看到的第一个操作方法有一些新内容 我查了一下互联网 找不到任何关于此的信息 public ActionResult LogOn return ContextDependentView 有谁知道 ContextDe
  • Web浏览器控件:如何捕获文档事件?

    我正在使用 WPF 的 WebBrowser 控件加载一个简单的网页 在这个页面上我有一个锚点或一个按钮 我想在我的应用程序后面的代码中 即在 C 中 捕获该按钮的单击事件 WebBrowser 控件是否有办法捕获加载页面元素上的单击事件
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 如何从密钥对的现有公钥创建证书签名请求 (CSR)(假设私钥位于其他地方的安全位置)?

    我正在使用 OpenSSL openSSL的所有参考文献都集中在以下两个创建CSR的命令 一个要求您输入一个已经存在的私钥 并派生公钥 第二个将创建一个新的密钥对 我想使用我的公钥而不是创建新的 创建 CSR 和私钥 openssl req
  • Jhipster:对非管理员隐藏实体

    问候 Java 潮人 我刚刚生成了一个 jhipster 项目并创建了一些实体 我想通过将某些实体限制为仅管理员用户来隐藏它们 我该如何实现这一目标 Thanks 初读Spring安全文档 http docs spring io autor
  • Chart.js - 悬停标签以显示 x 轴上所有数据点的数据

    我有一个包含多个数据点 线的图表 目前 如果您将鼠标悬停在数据点附近 它将显示该点的标签 值 我想要的是 当您将鼠标悬停在图表上的任意位置时 它将在单个标签中同时显示该 x 值处的所有数据点的标签 值 例如 让我们采用给定的数据集 Date
  • JNA Windows 服务启动类型

    我一直在使用 JNA 并且能够使用下面的代码返回 Windows 服务的状态 即启动或停止 但我不确定如何返回服务的启动类型 我确信 JNA 之外还有其他方法 但如果可能的话我想继续使用 JNA import com sun jna imp
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • IE 6 中存在内存泄漏的大型 Web 应用程序

    我有一个巨大的网络应用程序在 IE 6 中存在内存泄漏问题 修复演示该问题的 5 行代码示例中的内存泄漏很容易 但如果我有一个非常庞大的应用程序 应该从哪里开始呢 查看Drip http sourceforge net projects i
  • 比较 javascript 元素和 scala 变量的 Play 框架 Twirl 模板

    如下面的代码示例所示 我想比较 scala 辅助元素内的 javascript 元素 然而 即使存在元素 abcde 它也始终返回 false 除了使用标签之外 如何获取 scala 辅助元素内的 javascript 值 appSeq S
  • 可以通过模板间接访问基类中的私有类型

    我试图在编译时根据类型是否在给定范围内公开可用来选择要使用的类型 最好直接看代码 include
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • 使用 Arcanist (Phabricator) 自动运行 PHPUnit 测试

    一个 简单 的问题 如何使用 Arcanist 自动运行 PHPunit 测试 根据文档 https secure phabricator com book phabcontrib article unit tests 我应该首先加载一个自