GitLab Duo Principles - ハンズオンラボ: GitLab Duo を使った新しいコードの作成
推定所要時間: 25 分
目標
このラボでは、GitLab Duo がプロジェクト内でコードの作成とテストにどのように役立つかを確認します。
タスク A. コードサジェストを使って新しい関数を作成する
GitLab Duo Principles プロジェクトのルートに移動します。
main.goファイルを選択します。Edit > Open in Web IDE を選択します。
importブロックとmain関数の間に次のコメントを入力します:// write a function called print_phrase that contains a list of string values. It takes in an index of the list and returns the value at the provided index from a list as a stringEnter を押すと、コードマージンに小さなタヌキのアイコンが表示されます。コードが表示されるまで待ちます。コードが表示されたら、Tab を押します。
main()関数内で新しいmyFigureオブジェクトの一部として新しい関数を呼び出します。引数としてインデックスを指定してください。サンプルコードでは、インデックスとして 0 が指定されています。この後、コードは次のようになっているはずです:
package main import ( "github.com/common-nighthawk/go-figure" ) // write a function called print_phrase that contains a list of string values. It takes in an index of the list and returns the value at the provided index from a list as a string func print_phrase(index int) string { phrases := []string{ "Hello, world!", "Go is awesome", "Programming is fun", "Keep coding", "Practice makes perfect", } if index < 0 || index >= len(phrases) { return "Invalid index" } return phrases[index] } func main() { myFigure := figure.NewFigure(print_phrase(0), "", true) myFigure.Print() }入力したプロンプトはほとんどのユーザーで異なるコードを生成します。リストからランダムなワードを求めたためです。
phrases :=の定義に異なる単語が表示されても問題ありません。
タスク B. コードテストを生成する
GitLab Duo が生成したコードはおそらく正しいですが、本番環境で使用する前にコードのエラーをテストすることがベストプラクティスです。幸い、GitLab Duo はテスト生成プロセスも支援できます!
func print_phrase() string関数のすべてのコードをハイライトします。左サイドバーの GitLab Duo Chat アイコンを選択します。
プロンプトに
/testsと入力します。次のようなテストが得られます:package main import ( "testing" ) func TestPrintPhrase(t *testing.T) { tests := []struct { name string index int expected string }{ {"Valid index 0", 0, "Hello, world!"}, {"Valid index 2", 2, "Programming is fun"}, {"Valid index 4", 4, "Practice makes perfect"}, {"Negative index", -1, "Invalid index"}, {"Index out of range", 5, "Invalid index"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { result := print_phrase(tt.index) if result != tt.expected { t.Errorf("print_phrase(%d) = %s; want %s", tt.index, result, tt.expected) } }) } }いつでも
/explainを使ってこのコードが何をしているか理解することもできます。プロジェクトにテストを追加するには、まず GitLab Duo が生成したコードをコピーします。
左サイドバーからエクスプローラーアイコンを選択します。
プロジェクトにテストを追加するには、
print_phrases.test.goという名前の新しいファイルを作成します。Duo がパッケージとテストのインポートをまだ追加していない場合は、ファイルの先頭に次のコードを追加してください:
package main import "testing"テストのインポートの下の新しい行に、GitLab Duo が生成したテストを貼り付けます。
左サイドバーから Source Control を選択し、任意のコミットメッセージを入力して、Commit and push to main を選択します。
Go to Project を選択してプロジェクトに戻ります。
タスク C. CI/CD パイプラインでテストを実行する
Build > Pipeline editor に移動します。
stagesセクションにtestという新しいステージを追加します。build appジョブの下にtestという新しいジョブを作成します。テストを実行するために
go testコマンドを追加します。.gitlab-ci.ymlファイルは次のようになります:stages: - build - test default: image: golang:latest build app: stage: build script: - go get github.com/common-nighthawk/go-figure - go run main.go test: stage: test script: - go get github.com/common-nighthawk/go-figure - go test ./...Commit changes を選択します。
パイプラインが完了するのを待ち、結果を確認します。
テストが成功したパイプラインが確認できるはずです。ジョブが失敗した場合は、Troubleshoot を使ってエラーのトラブルシューティングを行ってください。
ラボガイド完了
このラボ演習が完了しました。このコースの他のラボガイドを確認できます。
ご提案
ラボへの変更を提案したい場合は、マージリクエスト経由でご提出ください。
