restricted_toに関するドキュメントや環境、環境、グループで動作するその他のルールはありません。主に、これは、それらが使用するユースケースがGoogleのリポジトリ設定に非常に固有であり、より柔軟なシステムに置き換えるプロセスにあるためです。
restricted_toを使用するには、いくつかの環境ルールを定義し、それらを含む環境グループを定義し、テスト環境の制限を指定し、最後に常に "--target_environment"フラグを使用して電流を指定する必要があります環境グループ。それは次のようになります。
environment(name = "x86")
environment(name = "ppc")
environment_group(
name = "cpus",
defaults = [":x86"],
environments = [
":x86",
":ppc",
])
cc_test(
name = "test",
other config
restricted_to = [":ppc"],)
ます。次にようにテストを実行できます。
bazel test --target_environment=//:ppc //:test
環境チェックを取得します。
これは、テストを実行している人なら「--target_environment」を適切に設定する必要があるため、これはあまり有用ではありません。
現在サポートされているコードを使用してテストを無効にするより良い方法は、このように、config_settingを使用して選択することです:
config_setting(
name = "k8",
values = {"cpu": "k8"})
config_setting(
name = "ppc",
values = {"cpu":, "ppc")
cc_test(
name = "test",
other config
srcs = [other sources] +
select({
"//:x86": ["x86_test_src.cpp"],
"//:ppc": ["ppc_test_src.cpp"],
"//conditions:default": ["default_test_src.cpp"],
})
config_settingは、現在の「--cpu」フラグに基づいて値をとります。選択に含まれるファイルを変更することにより、各CPU設定のテストに含まれるファイルを制御することができます。
明らかに、これらは同じパッケージ内にある必要はなく、通常のBazel可視性ルールが適用されます。 config_settingの例についてはBazelのsrc/BUILDを参照し、selectで使用する場合はsrc/test/cpp/BUILDを参照してください。
私たちは、Bazelの実行環境を記述して照会するためのより良い方法であるプラットフォームについて懸命に取り組んでいます。テスト準備が整うと、ドキュメントとブログ記事を確実に投稿します。