検索

PHP品質保証ツールの概要:PHPコードの品質を向上させるための実用的なガイド

この記事では、PHPunit、Cucumber、Atoum、Selenium、Dusk、Kahlan、PHPのテスト能力などの主要なPHP品質保証ツールを強調しており、それぞれが独自のテストとコードの品質改善機能を提供します。さらに、PHPCI、Travisci、Semaphoreci、Jenkinsなどの継続的な統合(CI)サービスは、コードが公式プロジェクトリポジトリに統合される前に自動的にチェックされるため、チームプロジェクトにとって重要です。

テスト文化を構築することは困難ですが、品質をコードすることが重要です。上記のツールを使用すると、開発者がテストを開始し、PHPコーディングプラクティスの品質を確保することができます。

(この人気の記事は、2017年6月30日に最新のテクノロジーとツールを含めるように更新されました。) 高品質のコードを提供するには、エンコード時にテストを検討する必要があります(テスト駆動型開発(TDD)ではない場合。ただし、さまざまなPHPテストツールを考えると、選択することは困難です! PHPの探索は楽しい冒険ですが、それほど重くないツールボックスを形成するのは難しいです!

この記事は、最も人気のあるテストツールに焦点を当て、2017年の品質保証ツールの現在の状況を反映するために更新されました。

テストされていないコードは問題のコードです。

phpunit

phpunitは、PHPの優先テストフレームワークです。 2004年にSebastian Bergmannによって作成され、現在はバージョン6があり、PHP 7が必要です。 8 Must Have PHP Quality Assurance Tools

それについてのチュートリアルがたくさんあります。

キュウリ

キュウリは、仕様に基づいて受け入れテストを作成するためのフレームワークです。それは、通常の英語のように読むことができる記述的に生成されたテキストで知られています。キュウリの公式PHP実装はBehatです。

ここでSitePointを開始するためのチュートリアルがあります。ドキュメントから抜粋された次の例は、これらの望ましい式がどのように表現されるかをよく示しています。

8 Must Have PHP Quality Assurance Tools atoum

<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は、PHPの別の単体テストフレームワークです。これは、Github、Composer、またはPhar実行可能ファイルを介してインストールできるスタンドアロンパッケージです。

ATOUMテストは非常に読みやすく、明確なメソッド名とリンク式があります。 8 Must Have PHP Quality Assurance Tools

PHPユニットテストにATOUMを使用することについて詳しく知りたい場合は、このチュートリアルを読むことができます。

セレン

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

$this->string($classInstance->myMethod())
        ->contains("Something heppened");
</code>
Seleniumは、自動ブラウザテスト(統合と受け入れテスト)のためのツールです。テストをブラウザAPIコマンドに変換し、予想される結果を主張します。利用可能な最も利用可能なブラウザをサポートします。

拡張機能を使用して、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>

これは簡単な例です:

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

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

phpunitとSeleniumでのテストの詳細を知りたい場合は、この一連の記事を読むことができます。

dusk

8 Must Have PHP Quality Assurance Tools

Laravel's Duskは、別のブラウザ自動化ツールです。独立して(Chromedriverを使用して)使用するか、セレンと一緒に使用できます。要素の待機、ファイルのアップロード、マウスコントロールなど、すべてのテストの可能性をカバーする使いやすいAPIがあります。簡単な例を次に示します:

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

このチュートリアルをチェックして、テストのために夕暮れを始めることができます。

kahlan

8 Must Have PHP Quality Assurance Tools

Kahlanは、describing-it構文を使用する完全に機能するユニットおよびBDDテストフレームワークです。

<code>class UserSubscriptionTest extends PHPUnit_Extensions_Selenium2TestCase
{
    public function testFormSubmissionWithUsername()
    {
        $this->byName('username')->value('name');
        $this->byId('subscriptionForm')->submit();
    }
}
</code>
上記の構文からわかるように、

behatテストに似ています。 Kahlanは、依存関係、コードカバレッジ、レポートなど、すぐに使用できるスタブとシミュレーションをサポートしています。

<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

最後のパッケージはPHPテスト能力です。これは、プログラムのテスト可能性の問題について説明し、詳細なレポートを生成する静的分析ツールです。

パッケージには現在、頼ることができるタグ付きバージョンがありませんが、開発で安全に使用できます。 Composer:

を介してインストールできます
<code>describe("Positive Expectation", function() {
    it("expects that 5 > 4", function() {
        expect(5)->toBeGreaterThan(4);
    });
});
</code>

次に実行します:

<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>

継続的な統合(CI)サービス

チームと協力してコードを配信するときの重要な部分は、コードをプロジェクトの公式リポジトリにマージする前に自動的にチェックする機能です。利用可能なCIサービス/ツールのほとんどは、さまざまなプラットフォームと構成でコードをテストして、コードを安全に統合できるようにすることができます。

8 Must Have PHP Quality Assurance Tools

優れた価格評価を提供する多くのサービスがありますが、オープンソースツールを使用することもできます。

    phpci :(オープンソース)はじめに記事。
  • Travisci :(オープンソースプロジェクト無料)はじめに記事。
  • Semaphoreci :(オープンソースプロジェクト無料)はじめに記事。
  • ジェンキンス:初心者の記事。
結論

テスト文化の構築は困難ですが、練習とともにゆっくりと成長します。コードを気にかけている場合は、テストする必要があります。上記のツールとリソースは、すぐに始めるのに役立ちます。

上記のツールでの経験はどうですか?私たちは何かを逃しましたか?必要なツールでリストを拡大するために最善を尽くしていることをお知らせください!

PHP品質保証ツール(FAQ)

に関するよくある質問

PHP品質保証ツールを選択する際には、どのような重要な機能を考慮する必要がありますか?

PHP品質保証ツールを選択する場合、いくつかの重要な機能を考慮する必要があります。まず、このツールは静的コード分析を実行できる必要があります。これには、プログラムを実行せずにエンコード標準の潜在的なエラー、バグ、または違反のソースコードを確認することが含まれます。第二に、このツールは、ソースコードの個々のユニットをテストして、使用に適しているかどうかを判断できるユニットテストフレームワークを提供する必要があります。その他の重要な機能には、コードカバレッジ分析(コードテストの程度を測定)と継続的な統合(すべての開発者の作業コピーを共有メインラインに定期的にマージ)が含まれます。

PHP品質保証ツールは、開発プロセスの効率をどのように改善しますか?

PHP品質保証ツールは、多くの時間のかかる時間とエラーが発生しやすいタスクを自動化することにより、開発プロセスの効率を大幅に向上させることができます。たとえば、静的コード分析は、潜在的なエラーとコーディング標準の違反を自動的に検出し、コードを手動でチェックする手間を排除することができます。同様に、ユニットテストフレームワークは、ソースコードの個々のユニットを自動的にテストし、より大きなシステムに統合される前に適切に機能できるようにすることができます。これにより、デバッグやトラブルシューティングのための時間と労力を大幅に節約できます。

オープンソースのPHP品質保証ツールはありますか?

はい、多くのオープンソースのPHP品質保証ツールが利用可能です。これらには、PHP_CODESNIFFER(コードの標準違反をエンコードする)(単位テストフレームワーク);これらのツールは無料で使用でき、特定のニーズに合わせてカスタマイズできます。

(次のFAQの回答も同様に書き直されており、元の意味を変えずに維持し、言語スタイルを調整してよりスムーズで自然にします。)

以上が8 PHP品質保証ツールが必要ですの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
PHPの継続的な使用:その持久力の理由PHPの継続的な使用:その持久力の理由Apr 19, 2025 am 12:23 AM

まだ人気があるのは、使いやすさ、柔軟性、強力なエコシステムです。 1)使いやすさとシンプルな構文により、初心者にとって最初の選択肢になります。 2)Web開発、HTTP要求とデータベースとの優れた相互作用と密接に統合されています。 3)巨大なエコシステムは、豊富なツールとライブラリを提供します。 4)アクティブなコミュニティとオープンソースの性質は、それらを新しいニーズとテクノロジーの傾向に適応させます。

PHPおよびPython:類似点と相違点を調査しますPHPおよびPython:類似点と相違点を調査しますApr 19, 2025 am 12:21 AM

PHPとPythonはどちらも、Web開発、データ処理、自動化タスクで広く使用されている高レベルのプログラミング言語です。 1.PHPは、ダイナミックウェブサイトとコンテンツ管理システムの構築によく使用されますが、PythonはWebフレームワークとデータサイエンスの構築に使用されることがよくあります。 2.PHPはエコーを使用してコンテンツを出力し、Pythonは印刷を使用します。 3.両方ともオブジェクト指向プログラミングをサポートしますが、構文とキーワードは異なります。 4。PHPは弱いタイプの変換をサポートしますが、Pythonはより厳しくなります。 5. PHPパフォーマンスの最適化には、Opcacheおよび非同期プログラミングの使用が含まれますが、PythonはCprofileおよび非同期プログラミングを使用します。

PHPおよびPython:さまざまなパラダイムが説明されていますPHPおよびPython:さまざまなパラダイムが説明されていますApr 18, 2025 am 12:26 AM

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPとPython:彼らの歴史を深く掘り下げますPHPとPython:彼らの歴史を深く掘り下げますApr 18, 2025 am 12:25 AM

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPとPythonの選択:ガイドPHPとPythonの選択:ガイドApr 18, 2025 am 12:24 AM

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPとフレームワーク:言語の近代化PHPとフレームワーク:言語の近代化Apr 18, 2025 am 12:14 AM

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの影響:Web開発などPHPの影響:Web開発などApr 18, 2025 am 12:10 AM

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)

スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?スカラータイプ、リターンタイプ、ユニオンタイプ、ヌル可能なタイプなど、PHPタイプのヒントはどのように機能しますか?Apr 17, 2025 am 12:25 AM

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール