gpt4 book ai didi

phpunit - Arcanist 单元测试需要几分钟时间

转载 作者:行者123 更新时间:2023-12-05 07:45:53 25 4
gpt4 key购买 nike

我们有一个遗留代码库,我们刚刚开始添加单元测试覆盖率。这意味着虽然我们有一个庞大的代码库(150 万行,至少 600 个类,加上支持、模板文件),但我们在整个应用程序中只有一两个单元测试。 (悲伤但真实)。

我的问题是 arcanist 单元测试(使用 arc unitarc diff 的一部分)运行需要超过四分钟。另一方面,PHPUnit 只需要几秒钟。

单元测试应该很短,特别是如果它只针对最近的差异。我如何加快这些速度,或者,除此之外,看看 arcanist 正在尝试做什么(以便我可以优化自己)?

我最好的猜测是,这与 arcanist 需要查找测试文件这一事实有关,而 PHPUnit 不需要,但在那种情况下,我不知道如何让 arcanist 默认到正确的目录。

最佳答案

事实证明,这其实不是测试造成的,而是覆盖造成的。默认情况下,Arcanist 尝试提供代码覆盖率报告:

   PASS   14ms★  Test\Unicorn\Feeds\Somber\DubStep::testLoadBadType
PASS 5ms★ Test\Unicorn\Feeds\Somber\DubStep::testLoadBadJSON
PASS 8ms★ Test\Unicorn\Feeds\Somber\DubStep::testLoadBadSeasonWeek
PASS 148ms Test\Unicorn\Feeds\Somber\DubStep::testEmptyData
PASS 200ms Test\Unicorn\Feeds\Somber\DubStep::testCompleteLoad
PASS 5ms★ Test\Fantasy\Feeds\Somber\DubStep::testGetProjectionStats
PASS 5ms★ Test\Fantasy\Feeds\Somber\DubStep::testGetNumGamesPlayed
PASS 12ms★ Test\Unicorn\Feeds\Somber\DubStep::testIsStatBonus
PASS 140ms Test\Fantasy\Feeds\Somber\DubStep::testIsPlayerUpdatedBaseConditions
PASS 7ms★ Test\Fantasy\Feeds\Somber\DubStep::testCalcNormalizedWeekProjection

COVERAGE REPORT
0% tests/feeds/lib/Feeds/Somber/Extension/usfoak-qub-te-hk3.json
0% tests/feeds/lib/Feeds/Somber/DubStep.php
93% feeds/lib/Feeds/Somber/PlayerProjectedStats.php

覆盖率它针对整个存储库运行完整的覆盖率报告,并且不缓存结果。这意味着每个 arc diff 中的每个文件都有一个覆盖率报告运行。在一个小项目中没什么大不了的,但在一个大项目中却有很大的不同。避免这种情况的最佳方法是直接使用 phpunit 覆盖率报告并在所有 arc diff 中使用 --no-coverage 标志。

关于phpunit - Arcanist 单元测试需要几分钟时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41146685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com