当前位置: 首页 > 后端技术 > PHP

8PHP软件质量控制工具推荐(包括QA工具和测试工具)

时间:2023-03-29 14:06:19 PHP

为了传播优质代码,我们在编码的时候一定要有测试的概念(如果不做TDD的话)。然而,市场上可用的PHP测试工具种类繁多,难以选择。这篇热门文章将精选一些最流行的测试工具,并已更新以反映2017年QA工具的状态。没有测试的代码是不完整的代码。PHPUnitPHPUnit是一个PHP测试框架。由SebastianBergmann于2004年创建,现在是支持PHP7的第6版。PHPUnit有大量的教程不断出现,这里有一些您可能已经看过。CucumberCucumber是一个根据规范创建的验收测试框架。它以生成描述性和可读性强的纯英文文本而闻名。Cucumber的官方PHP实现是Behat。SitePoint上有框架的入门教程。该教程中的以下示例文档很好地说明了您对预期结果的表达能力。功能:列出命令为了更改我当前所在文件夹的结构作为UNIX用户,我需要能够看到那里当前可用的文件和文件夹场景:列出目录中的两个文件假设我在目录中“test"我有一个名为"foo"的文件我有一个名为"bar"的文件当我运行"ls"然后我应该得到:"""barfoo"""AtoumAtoum是另一个PHP单元测试框架。这是一个独立包,您可以通过GitHub、Composer或通过PHAR可执行文件安装。通过使用明确的方法名称和链接,Atoum测试非常易于使用。$this->integer($classInstance->myMethod())->isEqualTo(10);$this->string($classInstance->myMethod())->contains("Somethingheppened");想了解更多关于Atoum的PHP单元测试,可以关注本教程。SeleniumSelenium是浏览器测试(集成和验收测试)的自动工具。它将测试转换为浏览器API指令并声明预期结果。它支持大多数可用的浏览器。我们可以使用Seleniumcomposerrequire--dev通过使用PHPUnit扩展phpunit/phpunitcomposerrequire--devphpunit/phpunit-selenium这是一个简单的例子:classUserSubscriptionTestextendsPHPUnit_Extensions_Selenium2TestCase{publicfunctiontestFormSubmissionWithUsername(){$this->byName('username')->value('name');$this->byId('subscriptionForm')->submit();}}如果你想了解更多关于使用PHPUnit和Selenium进行测试的知识,你可以关注这个系列来学习。DuskLaravel的Dusk是另一个浏览器自动化工具。它可以独立使用(通过chromedriver)或Selenium。它有一个易于使用的API并包括所有可能的具体测试,例如等待元素、文件上传、鼠标控制等。这是一个简单的例子:classLanguagesControllerTestextendsDuskTestCase{publicfunctiontestCreate(){$this->browse(函数(浏览器$browser){$user=$this->getAdminUser();$browser->loginAs($user)->visit('/panel/core/languages')->click('#add')->assertPathIs('/panel/core/languages/create')->type('name','Arabic')->select('direction','rtl')->press('Submit')->assertSee('语言:阿拉伯语')->assertSee('ar')->assertSee('rtl')->assertSee('语言创建');});您可以通过查看此文档开始使用Dusk进行测试。KahlanKahlan是一个使用describe-全功能单元和BDD测试框架的测试器syntax.describe("PositiveExpectation",function(){it("expectsthat5>4",function(){expect(5)->toBeGreaterThan(4);});});从上面的语法可以看出它类似于Behat测试。Kahlan支持沙箱之外的存根和模拟,没有任何依赖性、代码覆盖率、报告等。>'Kahlan\Util\Text']);expect(is_object($double))->toBe(true);expect(get_parent_class($double))->toBe('Kahlan\Util\Text');});php_testability我想在这里提到的最后一个包是PHPTestability。这是一个静态分析工具,可以告诉您程序中的可测试性问题并生成详细的报告。该软件包目前没有正式标记的版本供您依赖,但您可以在开发期间安全地使用它。您可以通过Composer安装它:composerrequireedsonmedina/php_testability"dev-master"然后像这样运行:vendor/bin/testability。-xvendor持续集成(CI)服务团队间协作时代码交付的重要部分是在代码合并到官方项目存储库之前目前,自动审计代码的能力大多数可用的CI服务/工具都提供了在不同平台和配置上测试代码的能力,以确保代码的安全合并。有许多服务提供不错的价格范围,但您也可以使用开源工具:PHPCI:(开源)入门文章.TravisCI:(免费开源项目)入门文章.SemaphoreCI:(免费OpenSourceProjects)GettingStartedArticles.Jenkins:入门文章。总结引入测试文化的过程是困难的,只能随着实践慢慢发展。如果你关心你的代码,是时候测试它了!前面的工具和资源将帮助您快速入门。您有使用前面提到的工具的经验吗?或者我们错过了什么?让我们知道,我们将尝试丰富这个基本工具列表!讨论请到https://laravel-china.org/top...