Goでパッケージを作成し、サブディレクトリとしてパッケージのテストと例を使用して、ワークスペースをよりきれいに保ちます。これは可能ですか?
すべてのドキュメントは常にテストコードを他のコードと同じ場所に配置しますが、これは何らかの点で優れているのでしょうか、それとも単なる慣習ですか?
cango test
"recursively"を実行できることに注意してください。テストするすべてのパッケージをリストする必要があります。
あなたがGoプロジェクトのルートフォルダである場合は、次のように入力します。
go test ./...
「./...
」表記については、「 command go
」の「 パッケージリストの説明 」セクションで説明しています。
インポートパスは、空の文字列やスラッシュを含む文字列など、任意の文字列と一致する1つ以上の「
...
」ワイルドカードを含む場合のパターンです。このようなパターンは、パターンに一致する名前を持つ
GOPATH
ツリーにあるすべてのパッケージディレクトリに展開されます。特別な場合として、
x/...
はx
およびx
のサブディレクトリと一致します。
たとえば、net/...
はnet
に展開され、サブディレクトリにパッケージ化されます。
_test.go
ファイルをサブフォルダーに保存すると、「go test ./...
」コマンドでそれらを取得できます。
しかし:
そうは言っても、_test.go
ファイルをメインのソースファイルのすぐ横に置いておくことをお勧めします。見つけるのは簡単です。
file_test.go
という名前のファイルの同じディレクトリに、コードと一緒にテストを配置します。ここで、「file」はテストするソースコードファイルの名前です。これは慣習であり、私自身の経験で最高であることがわかりました。
go test
ツールが十分に自動化されていない場合は、GoConveyを調べてください。従来のGoテストとGoConveyテスト(動作に基づいており、従来のGoテストよりも自己文書化されている)を自動的に更新して実行するWeb UI。
VonCの答えに基づいて、
テストをサブフォルダーに保存したい場合は、test
と言ってから実行します
go test ./...
everyフォルダーでテストを実行しようとします。テストが含まれていないものであっても、テスト以外のフォルダーの後続のレポートには?
が含まれます。
ランニング
go test ./.../test
代わりにtest
フォルダーのみを対象とするため、テストフォルダーのみに焦点を絞ったクリーンなレポートが作成されます。
私は通常テストを行いませんが、ファイルをディレクトリにグループ化し、次のようなインポートを使用できます
import "./models"
ifが1レベルアウトimport "../models
ifは、1レベル出力で1レベル入力
たとえば、次の場合:./models/todo.go
./test/todo_test.go
todo.go
からtodo_test.go
をテストするには、todo_test.go
でのインポートは
import "../models"