チーム管理

Pest を使用すると、チームとタスクや ToDo をコンソールから直接管理できます。タスクを作成、割り当て、追跡したり、各タスクのステータスを表示したりできます。

プロジェクトのセットアップ

Pest でチーム管理を開始するには、Pest.php 設定ファイルでプロジェクトの URL を指定する必要があります。この URL は、ToDo を対応するプロジェクト管理システムにリンクするために使用されます。

1pest()->project()->github('my-organization/my-repository');

別のバージョン管理システムを使用している場合は、代わりに gitlabbitbucketjira、または custom メソッドを使用できます。

ToDo の作成

通常、ToDo は、合格する必要がある 1 つ以上のテストにリンクされています。そのため、テストを使用して ToDo / タスクの進捗状況を追跡できます。Pest は、todo() メソッドを使用することで、ToDo を簡単に作成する方法を提供します。

1it('has a contact page', function () {
2 //
3})->todo();

テストを実行すると、Pest は、忘れないように、テスト結果に表示されている ToDo であるすべてのテストについて通知します。

1 つ以上の ToDo がある場合は、テストスイートの残りの部分とは別に表示したい場合があります。Pest を実行するときに --todos オプションを含めることで、これを行うことができます。

1./vendor/bin/pest --todos

ToDo の割り当て

場合によっては、特定のチームメンバーに ToDo を割り当てる必要がある場合があります。Pest では、todo() メソッドの assignee 引数に名前を指定することで、ToDo を特定のチームメンバーに割り当てることができます。

1it('has a contact page', function () {
2 //
3})->todo(assignee: 'nunomaduro');

assignee 引数に名前の配列を指定することで、複数の担当者を割り当てることができます。また、Pest を実行するときに --assignee オプションに名前を指定することで、担当者ごとに ToDo をフィルター処理することもできます。

1./vendor/bin/pest --todos --assignee=nunomaduro

対応する Issue の設定

ToDo がプロジェクト管理システムの Issue にリンクされている場合があります。Pest では、todo() メソッドの issue 引数に Issue 番号を指定することで、ToDo に対応する Issue を設定できます。

1it('has a contact page', function () {
2 //
3})->todo(issue: 123);

担当者と同様に、issue 引数に Issue 番号の配列を指定することで、複数の Issue を設定できます。また、Pest を実行するときに --issue オプションに Issue 番号を指定することで、Issue ごとに ToDo をフィルター処理することもできます。

1./vendor/bin/pest --todos --issue=123

対応する PR の設定

ToDo がバージョン管理システムのプルリクエストにリンクされている場合があります。Pest では、todo() メソッドの pr 引数にプルリクエスト番号を指定することで、ToDo に対応するプルリクエストを設定できます。

1it('has a contact page', function () {
2 //
3})->todo(pr: 123);

担当者と同様に、pr 引数にプルリクエスト番号の配列を指定することで、複数のプルリクエストを設定できます。また、Pest を実行するときに --pr オプションにプルリクエスト番号を指定することで、プルリクエストごとに ToDo をフィルター処理することもできます。

1./vendor/bin/pest --todos --pr=123

ToDo のメモの記述

ToDo に追加のコンテキストを提供すると役立つことがよくあります。Pest では、todo() メソッドの note 引数に文字列を指定することで、ToDo のメモを記述できます。

1it('has a contact page', function () {
2 //
3})->todo(note: <<<NOTE
4 Given I am a user
5 When I visit the contact page
6 Then I should see a contact form
7NOTE);

メモは、テスト結果の ToDo の下に表示されます。

ToDo を作業中としてマーク

ToDo が完了したら、wip() メソッドを使用して作業中としてマークできます。このメソッドは、テストから ToDo ステータスを削除し、担当者、Issue などすべてのコンテキストを保持しながら、通常のテストとしてマークします。

1it('has a contact page', function () {
2 //
3})->wip(assignee: 'nunomaduro', issue: 123);

ToDo を完了としてマーク

ToDo が完了したら、done() メソッドを使用して完了としてマークできます。このメソッドは、テストから ToDo ステータスを削除し、担当者、Issue などすべてのコンテキストを保持しながら、通常のテストとしてマークします。

1it('has a contact page', function () {
2 //
3})->done(assignee: 'nunomaduro', issue: 123);

ToDo と担当者、Issue、PR の組み合わせ

ToDo を担当者、Issue、PR と組み合わせることで、追加のコンテキストを提供し、ToDo の進捗状況を追跡できます。これは、describe グループと todoassigneeissuepr メソッドを使用して行うことができます。

1describe('contacts', function () {
2 it('has a contact page', function () {
3 //
4 }))->issue(123); // or ->pr(123) etc
5 
6 it('has a contact form', function () {
7 //
8 })->done(pr: 567);
9})->wip(assignee: 'nunomaduro');

次に、アーキテクチャテストと、それが開発プロセスにどのように役立つかについて説明します。アーキテクチャテストを実行することで、アプリケーションの全体的な設計を評価し、重大な問題になる前に潜在的な欠陥を特定できます: アーキテクチャテスト