ホームページ > バックエンド開発 > PHPチュートリアル > 8 PHP品質保証ツールが必要です

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

Jennifer Aniston
リリース: 2025-02-09 10:18:13
オリジナル
858 人が閲覧しました

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 までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート