1. ホーム
  2. build

[解決済み] サブディレクトリにあるGolangのテスト

2022-04-20 12:04:23

質問

ワークスペースをすっきりさせるために、Goでパッケージを作成し、そのパッケージのテストとサンプルをサブディレクトリとして作成したいのですが、どうすればよいですか?これは可能ですか、また可能な場合はどのように行いますか。

すべてのドキュメントでは、テストコードは常に他のコードと同じ場所に置かれていますが、これは何らかの点で優れているのでしょうか、それとも単なる慣習なのでしょうか?

解決方法は?

注意 できること 実行 go test 再帰的(recursively"): 必要なのは テストしたいパッケージをすべてリストアップする .

Goプロジェクトのルートフォルダにいる場合は、次のように入力します。

go test ./...

は、' ./... ' の表記法については、「" パッケージリストの説明 の "です。 コマンド go "です。

インポートパスが1つ以上の " を含んでいる場合、パターンです。 ... 各ワイルドカードは、空文字列やスラッシュを含む文字列を含む、あらゆる文字列にマッチします。

の中にあるすべてのパッケージディレクトリに展開されます。 GOPATH ツリーで、パターンに一致する名前を持つ。

特殊なケースとして x/... マッチ x と同様に x のサブディレクトリを作成します。

例えば net/... は次のように展開されます。 net とそのサブディレクトリにあるパッケージです。


にしておくと _test.go ファイルをサブフォルダに格納する場合、' go test ./... コマンドで拾えるようになります。

でも

  • テストファイルがパッケージからエクスポートされた内容にアクセスできるようにするために、 (テストで使用する) エクスポートされた変数や関数にパッケージ名をプレフィックスとして付ける必要があります。
  • を使用すると、非エクスポートのコンテンツにアクセスできなくなります。

とはいえ、私はやはり _test.go ファイルをメインソースファイルのすぐ横に置いておくと、見つけやすくなります。