目次
atoumは、PHPの別の単体テストフレームワークです。これは、Github、Composer、またはPhar実行可能ファイルを介してインストールできるスタンドアロンパッケージです。
dusk
kahlan
php_testability
継続的な統合(CI)サービス
PHP品質保証ツール(FAQ)
PHP品質保証ツールを選択する際には、どのような重要な機能を考慮する必要がありますか?
PHP品質保証ツールは、開発プロセスの効率をどのように改善しますか?
オープンソースのPHP品質保証ツールはありますか?
ホームページ バックエンド開発 PHPチュートリアル 8 PHP品質保証ツールが必要です

8 PHP品質保証ツールが必要です

Feb 09, 2025 am 10:18 AM

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 までご連絡ください。

ホット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 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? セッションのハイジャックはどのように機能し、どのようにPHPでそれを軽減できますか? Apr 06, 2025 am 12:02 AM

セッションハイジャックは、次の手順で達成できます。1。セッションIDを取得します。2。セッションIDを使用します。3。セッションをアクティブに保ちます。 PHPでのセッションハイジャックを防ぐための方法には次のものが含まれます。1。セッション_regenerate_id()関数を使用して、セッションIDを再生します。2。データベースを介してストアセッションデータを3。

PHP 8.1の列挙(列挙)とは何ですか? PHP 8.1の列挙(列挙)とは何ですか? Apr 03, 2025 am 12:05 AM

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 確固たる原則と、それらがPHP開発にどのように適用されるかを説明してください。 Apr 03, 2025 am 12:04 AM

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

REST APIデザインの原則とは何ですか? REST APIデザインの原則とは何ですか? Apr 04, 2025 am 12:01 AM

Restapiの設計原則には、リソース定義、URI設計、HTTPメソッドの使用、ステータスコードの使用、バージョンコントロール、およびHATEOASが含まれます。 1。リソースは名詞で表され、階層で維持される必要があります。 2。HTTPメソッドは、GETを使用してリソースを取得するなど、セマンティクスに準拠する必要があります。 3.ステータスコードは、404など、リソースが存在しないことを意味します。 4。バージョン制御は、URIまたはヘッダーを介して実装できます。 5。それに応じてリンクを介してhateoasブーツクライアント操作をブーツします。

PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? PHPで例外を効果的に処理する方法(試して、キャッチ、最後に、スロー)? Apr 05, 2025 am 12:03 AM

PHPでは、Try、Catch、最後にキーワードをスローすることにより、例外処理が達成されます。 1)TRYブロックは、例外をスローする可能性のあるコードを囲みます。 2)キャッチブロックは例外を処理します。 3)最後にブロックは、コードが常に実行されることを保証します。 4)スローは、例外を手動でスローするために使用されます。これらのメカニズムは、コードの堅牢性と保守性を向上させるのに役立ちます。

PHPの匿名クラスとは何ですか?また、いつ使用できますか? PHPの匿名クラスとは何ですか?また、いつ使用できますか? Apr 04, 2025 am 12:02 AM

PHPの匿名クラスの主な機能は、1回限りのオブジェクトを作成することです。 1.匿名クラスでは、名前のないクラスをコードで直接定義することができます。これは、一時的な要件に適しています。 2。クラスを継承したり、インターフェイスを実装して柔軟性を高めることができます。 3.使用時にパフォーマンスとコードの読みやすさに注意し、同じ匿名のクラスを繰り返し定義しないようにします。

See all articles