2017-10-23 12 views
0

go build ./...をmy $ GOPATH/srcから実行しようとするとエラーが発生します。ビルドエラー:テスト無し<dir>

no non-test Go files in <dir> 

エラーがそこには、テストファイルが<dir>にありませんが、なぜコンパイルエラーの原因となっていることで正しいでしょうか?バグですか?

+0

エラーには、「非テスト」ファイルがないと表示されます。そのディレクトリには何も構築できません。 – JimB

+0

"from my $ GOPATH/src"は正しいとは言えません - それは**すべてをビルドします** - 何をビルドしようとしていますか? – fstanis

+0

@fstanis _everything_ – Clintm

答えて

0

これはバグではないと思います。この動作と矛盾するドキュメントのどこかが表示されない限り、作成した問題を閉じる可能性があります。

通常のテストは、テスト中のパッケージに含まれています。一番上にパッケージメインを持つ新しいパッケージを作ったことがあります(他の場所がメインの場合は無効です)。そのテスト/メインパッケージには移動元ファイルが含まれていません(パッケージにはテストとは別にソースファイルがありません。コンパイラは明示的に不平を言う)。あなたのための

可能な解決策(これは単なる仮定の問題ではないと仮定した場合):test_main.goするメイン用

  • 移動テスト
  • がdoc.goを追加(これは読者が 期待するものです) PKGあなたのテストに提出し、それが同じパッケージにテストを置く理由は、あなたが別のpackagにそれらを分割したい場合、彼らは全体のパッケージへのアクセス権を持っていることを確認することです でテスト両方のファイル

をパッケージ呼び出しますあなたはあなたがpkgの外部ユーザーとしてテストする必要があることが分かります - これは苦しいかもしれません。 Mainは特殊なケースでもありますが、通常はインポートしません。

+1

ここに記載されています:https://github.com/golang/go/issues/8279 – Clintm

+0

この問題は解決されません。 –