国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
PHPUnit
Cucumber
Atoum
Selenium
Dusk
Kahlan
php_testability
持續(xù)集成 (CI) 服務(wù)
結(jié)論
關(guān)於 PHP 質(zhì)量保證工具的常見問題 (FAQ)
選擇 PHP 質(zhì)量保證工具時(shí),需要考慮哪些關(guān)鍵功能?
PHP 質(zhì)量保證工具如何提高我的開發(fā)過程效率?
是否有可用的開源 PHP 質(zhì)量保證工具?
首頁(yè) 後端開發(fā) php教程 8必須具有PHP質(zhì)量保證工具

8必須具有PHP質(zhì)量保證工具

Feb 09, 2025 am 10:18 AM

PHP 質(zhì)量保證工具概述:提升 PHP 代碼質(zhì)量的實(shí)用指南

本文重點(diǎn)介紹 PHPUnit、Cucumber、Atoum、Selenium、Dusk、Kahlan 和 PHP Testability 等關(guān)鍵 PHP 質(zhì)量保證工具,它們各自提供獨(dú)特的測(cè)試和代碼質(zhì)量改進(jìn)功能。此外,持續(xù)集成 (CI) 服務(wù)(如 PHPCI、TravisCI、SemaphoreCI 和 Jenkins)對(duì)於團(tuán)隊(duì)項(xiàng)目至關(guān)重要,因?yàn)樗鼈儠?huì)在代碼合併到官方項(xiàng)目存儲(chǔ)庫(kù)之前自動(dòng)檢查代碼。

雖然建立測(cè)試文化具有挑戰(zhàn)性,但對(duì)於代碼質(zhì)量至關(guān)重要。使用上述工具可以幫助開發(fā)人員開始進(jìn)行測(cè)試,並確保其 PHP 編碼實(shí)踐的質(zhì)量。

(此熱門文章已於 2017 年 6 月 30 日更新,以包含最新的技術(shù)和工具。)

為了交付高質(zhì)量的代碼,我們必須在編碼時(shí)(如果不是進(jìn)行測(cè)試驅(qū)動(dòng)開發(fā) (TDD) 的話)考慮到測(cè)試。然而,鑑於 PHP 測(cè)試工具種類繁多,很難做出選擇!探索 PHP 是一次有趣的冒險(xiǎn),但要組建一個(gè)不會(huì)過於繁重的工具箱卻很難!

這篇文章將重點(diǎn)介紹最流行的測(cè)試工具,並已更新以反映 2017 年質(zhì)量保證工具的現(xiàn)狀。

未經(jīng)測(cè)試的代碼就是有問題的代碼。

8 Must Have PHP Quality Assurance Tools

PHPUnit

PHPUnit 是 PHP 的首選測(cè)試框架。它由 Sebastian Bergmann 於 2004 年創(chuàng)建,當(dāng)前版本為 6,需要 PHP 7。

我們有很多關(guān)於它的教程即將推出。

Cucumber

Cucumber 是一個(gè)用於根據(jù)規(guī)範(fàn)創(chuàng)建驗(yàn)收測(cè)試的框架。它以其描述性生成的文本而聞名,這些文本可以像普通的英語一樣閱讀。 Cucumber 的官方 PHP 實(shí)現(xiàn)是 Behat。

8 Must Have PHP Quality Assurance Tools

我們?cè)谶@裡的 SitePoint 上有一個(gè)關(guān)於它的入門教程。以下摘自文檔的示例很好地說明了這些期望的表達(dá)方式。

<code>Feature: Listing command
  In order to change the structure of the folder I am currently in
  As a UNIX user
  I need to be able see the currently available files and folders there

  Scenario: Listing two files in a directory
    Given I am in a directory "test"
    And I have a file named "foo"
    And I have a file named "bar"
    When I run "ls"
    Then I should get:
      """
      bar
      foo
      """</code>

Atoum

8 Must Have PHP Quality Assurance Tools

Atoum 是另一個(gè)用於 PHP 的單元測(cè)試框架。它是一個(gè)獨(dú)立的包,您可以通過 GitHub、Composer 或 PHAR 可執(zhí)行文件安裝。

Atoum 測(cè)試具有非常高的可讀性,方法名稱和鏈接表達(dá)清晰。

<code>$this->integer($classInstance->myMethod())
        ->isEqualTo(10);

$this->string($classInstance->myMethod())
        ->contains("Something heppened");
</code>

如果您想了解有關(guān)使用 Atoum 進(jìn)行 PHP 單元測(cè)試的更多信息,可以閱讀本教程。

Selenium

Selenium 是一個(gè)用於自動(dòng)化瀏覽器測(cè)試(集成和驗(yàn)收測(cè)試)的工具。它將測(cè)試轉(zhuǎn)換為瀏覽器 API 命令,並斷言預(yù)期結(jié)果。它支持大多數(shù)可用的瀏覽器。

我們可以使用擴(kuò)展程序?qū)?Selenium 與 PHPUnit 配合使用。

<code>Feature: Listing command
  In order to change the structure of the folder I am currently in
  As a UNIX user
  I need to be able see the currently available files and folders there

  Scenario: Listing two files in a directory
    Given I am in a directory "test"
    And I have a file named "foo"
    And I have a file named "bar"
    When I run "ls"
    Then I should get:
      """
      bar
      foo
      """</code>

這是一個(gè)簡(jiǎn)單的示例:

<code>$this->integer($classInstance->myMethod())
        ->isEqualTo(10);

$this->string($classInstance->myMethod())
        ->contains("Something heppened");
</code>

如果您想了解有關(guān)使用 PHPUnit 和 Selenium 進(jìn)行測(cè)試的更多信息,可以閱讀本系列文章。

Dusk

8 Must Have PHP Quality Assurance Tools

Laravel 的 Dusk 是另一個(gè)瀏覽器自動(dòng)化工具。它可以獨(dú)立使用(使用 chromedriver)或與 Selenium 配合使用。它具有易於使用的 API,涵蓋了所有測(cè)試可能性,例如等待元素、文件上傳、鼠標(biāo)控制等。這是一個(gè)簡(jiǎn)單的示例:

<code>composer require --dev phpunit/phpunit
composer require --dev phpunit/phpunit-selenium
</code>

您可以查看本教程以開始使用 Dusk 進(jìn)行測(cè)試。

Kahlan

8 Must Have PHP Quality Assurance Tools

Kahlan 是一個(gè)功能齊全的單元和 BDD 測(cè)試框架,它使用 describe-it 語法。

<code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
{
    public function testFormSubmissionWithUsername()
    {
        $this->byName('username')->value('name');
        $this->byId('subscriptionForm')->submit();
    }
}
</code>

從上面的語法可以看出,它類似於 Behat 測(cè)試。 Kahlan 支持開箱即用的存根和模擬,無需依賴項(xiàng)、代碼覆蓋率、報(bào)告等。

<code>class LanguagesControllerTest extends DuskTestCase
{
    public function testCreate()
    {
        $this->browse(function (Browser $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('Language: Arabic')
                ->assertSee('ar')
                ->assertSee('rtl')
                ->assertSee('Language created');
        });
    }
}
</code>

php_testability

最後要提到的一個(gè)包是 PHP Testability。它是一個(gè)靜態(tài)分析工具,可以告訴您程序中的可測(cè)試性問題,並生成詳細(xì)的報(bào)告。

該包目前沒有您可以依賴的標(biāo)記版本,但您可以在開發(fā)中安全地使用它。您可以通過 Composer 安裝它:

<code>describe("Positive Expectation", function() {
    it("expects that 5 > 4", function() {
        expect(5)->toBeGreaterThan(4);
    });
});
</code>

然後像這樣運(yùn)行它:

<code>it("makes a instance double with a parent class", function() {
    $double = Double::instance(['extends' => 'Kahlan\Util\Text']);

    expect(is_object($double))->toBe(true);
    expect(get_parent_class($double))->toBe('Kahlan\Util\Text');
});
</code>

持續(xù)集成 (CI) 服務(wù)

在與團(tuán)隊(duì)合作交付代碼時(shí),一個(gè)重要部分是在將代碼合併到項(xiàng)目的官方存儲(chǔ)庫(kù)之前自動(dòng)檢查代碼的能力。大多數(shù)可用的 CI 服務(wù)/工具都能夠在不同的平臺(tái)和配置上測(cè)試代碼,以確保您的代碼可以安全地合併。

8 Must Have PHP Quality Assurance Tools

有很多服務(wù)提供良好的價(jià)格等級(jí),但您也可以使用開源工具:

  • PHPCI:(開源)入門文章。
  • TravisCI:(開源項(xiàng)目免費(fèi))入門文章。
  • SemaphoreCI:(開源項(xiàng)目免費(fèi))入門文章。
  • Jenkins:入門文章。

結(jié)論

建立測(cè)試文化很難,但它會(huì)隨著實(shí)踐而緩慢增長(zhǎng)。如果您關(guān)心您的代碼,您應(yīng)該測(cè)試它!上述工具和資源將幫助您快速入門。

您對(duì)上述工具的經(jīng)驗(yàn)如何?我們是否遺漏了什麼?請(qǐng)告訴我們,我們將盡最大努力用必要的工具擴(kuò)展列表!

關(guān)於 PHP 質(zhì)量保證工具的常見問題 (FAQ)

選擇 PHP 質(zhì)量保證工具時(shí),需要考慮哪些關(guān)鍵功能?

選擇 PHP 質(zhì)量保證工具時(shí),需要考慮幾個(gè)關(guān)鍵功能。首先,該工具應(yīng)該能夠執(zhí)行靜態(tài)代碼分析,這涉及檢查源代碼中是否存在潛在的錯(cuò)誤、bug 或違反編碼標(biāo)準(zhǔn)的情況,而無需執(zhí)行程序。其次,該工具應(yīng)該提供單元測(cè)試框架,允許您測(cè)試源代碼的各個(gè)單元,以確定它們是否適合使用。其他重要功能包括代碼覆蓋率分析(衡量代碼測(cè)試的程度)和持續(xù)集成(定期將所有開發(fā)人員的工作副本合併到共享主線上)。

PHP 質(zhì)量保證工具如何提高我的開發(fā)過程效率?

PHP 質(zhì)量保證工具可以通過自動(dòng)化許多原本耗時(shí)且容易出錯(cuò)的任務(wù)來顯著提高開發(fā)過程的效率。例如,靜態(tài)代碼分析可以自動(dòng)檢測(cè)潛在的錯(cuò)誤和違反編碼標(biāo)準(zhǔn)的情況,從而免除了您手動(dòng)檢查代碼的麻煩。同樣,單元測(cè)試框架可以自動(dòng)測(cè)試源代碼的各個(gè)單元,確保它們?cè)诩傻礁蟮南到y(tǒng)之前能夠正常運(yùn)行。這可以節(jié)省您大量用於調(diào)試和故障排除的時(shí)間和精力。

是否有可用的開源 PHP 質(zhì)量保證工具?

是的,有很多可用的開源 PHP 質(zhì)量保證工具。其中包括 PHP_CodeSniffer(檢查代碼中是否存在違反編碼標(biāo)準(zhǔn)的情況);PHPUnit(單元測(cè)試框架);以及 PHPMD(查找代碼中存在的潛在問題,例如 bug、次優(yōu)代碼和過於復(fù)雜的表達(dá)式)。這些工具免費(fèi)使用,並且可以根據(jù)您的特定需求進(jìn)行定制。

(以下 FAQ 答案類似地改寫,保持原文意思不變,並調(diào)整語言風(fēng)格,使之更流暢自然。)

以上是8必須具有PHP質(zhì)量保證工具的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

對(duì)基於PHP的API進(jìn)行版本控制的最佳實(shí)踐是什麼? 對(duì)基於PHP的API進(jìn)行版本控制的最佳實(shí)踐是什麼? Jun 14, 2025 am 12:27 AM

基於toversionaphp,useUrl deuseUrl specteringforclarityAndEsofRouting,單獨(dú)的codetoavoidConflicts,dremecateOldVersionswithClearCommunication,andConsiderCustomHeadeSerlySerallyWhennEnncelsy.startbyplacingtheversionIntheUrl(E.G.,epi/api/v

如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? 如何在PHP中實(shí)施身份驗(yàn)證和授權(quán)? Jun 20, 2025 am 01:03 AM

tosecurelyhandleauthenticationandationallizationInphp,lofterTheSesteps:1.AlwaysHashPasswordSwithPassword_hash()andverifyusingspasspassword_verify(),usepreparedStatatementStopreventsqlineptions,andStoreSeruserDatain usseruserDatain $ _sessiveferterlogin.2.implementrole-2.imaccessccsccccccccccccccccccccccccc.

PHP中有哪些弱參考(弱圖),何時(shí)有用? PHP中有哪些弱參考(弱圖),何時(shí)有用? Jun 14, 2025 am 12:25 AM

PHPdoesnothaveabuilt-inWeakMapbutoffersWeakReferenceforsimilarfunctionality.1.WeakReferenceallowsholdingreferenceswithoutpreventinggarbagecollection.2.Itisusefulforcaching,eventlisteners,andmetadatawithoutaffectingobjectlifecycles.3.YoucansimulateaWe

PHP中的程序和麵向?qū)ο蟮木幊坦?fàn)例之間有什麼區(qū)別? PHP中的程序和麵向?qū)ο蟮木幊坦?fàn)例之間有什麼區(qū)別? Jun 14, 2025 am 12:25 AM

procemal and object-tiriendedprogromming(oop)inphpdiffersimplessintustructure,可重複使用性和datahandling.1.procedural-Progrogursmingusesfunctimesfunctionsormanized sequalized sequalized sequiential,poiperforsmallscripts.2.OpporganizesCodeOrganizescodeOdeIntsocloceSandObjects,ModelingReal-Worlden-Worlden

如何在PHP中安全地處理文件上傳? 如何在PHP中安全地處理文件上傳? Jun 19, 2025 am 01:05 AM

要安全處理PHP中的文件上傳,核心在於驗(yàn)證文件類型、重命名文件並限制權(quán)限。 1.使用finfo_file()檢查真實(shí)MIME類型,僅允許特定類型如image/jpeg;2.用uniqid()生成隨機(jī)文件名,存儲(chǔ)至非Web根目錄;3.通過php.ini和HTML表單限製文件大小,設(shè)置目錄權(quán)限為0755;4.使用ClamAV掃描惡意軟件,增強(qiáng)安全性。這些步驟有效防止安全漏洞,確保文件上傳過程安全可靠。

PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? PHP中==(鬆散比較)和===(嚴(yán)格的比較)之間有什麼區(qū)別? Jun 19, 2025 am 01:07 AM

在PHP中,==與===的主要區(qū)別在於類型檢查的嚴(yán)格程度。 ==在比較前會(huì)進(jìn)行類型轉(zhuǎn)換,例如5=="5"返回true,而===要求值和類型都相同才會(huì)返回true,例如5==="5"返回false。使用場(chǎng)景上,===更安全應(yīng)優(yōu)先使用,==僅在需要類型轉(zhuǎn)換時(shí)使用。

如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? 如何與PHP的NOSQL數(shù)據(jù)庫(kù)(例如MongoDB,Redis)進(jìn)行交互? Jun 19, 2025 am 01:07 AM

是的,PHP可以通過特定擴(kuò)展或庫(kù)與MongoDB和Redis等NoSQL數(shù)據(jù)庫(kù)交互。首先,使用MongoDBPHP驅(qū)動(dòng)(通過PECL或Composer安裝)創(chuàng)建客戶端實(shí)例並操作數(shù)據(jù)庫(kù)及集合,支持插入、查詢、聚合等操作;其次,使用Predis庫(kù)或phpredis擴(kuò)展連接Redis,執(zhí)行鍵值設(shè)置與獲取,推薦phpredis用於高性能場(chǎng)景,Predis則便於快速部署;兩者均適用於生產(chǎn)環(huán)境且文檔完善。

如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? 如何在PHP( - , *, /,%)中執(zhí)行算術(shù)操作? Jun 19, 2025 pm 05:13 PM

PHP中使用基本數(shù)學(xué)運(yùn)算的方法如下:1.加法用 號(hào),支持整數(shù)和浮點(diǎn)數(shù),也可用於變量,字符串?dāng)?shù)字會(huì)自動(dòng)轉(zhuǎn)換但不推薦依賴;2.減法用-號(hào),變量同理,類型轉(zhuǎn)換同樣適用;3.乘法用*號(hào),適用於數(shù)字及類似字符串;4.除法用/號(hào),需避免除以零,並註意結(jié)果可能是浮點(diǎn)數(shù);5.取模用%號(hào),可用於判斷奇偶數(shù),處理負(fù)數(shù)時(shí)餘數(shù)符號(hào)與被除數(shù)一致。正確使用這些運(yùn)算符的關(guān)鍵在於確保數(shù)據(jù)類型清晰並處理好邊界情況。

See all articles