diff --git a/src/main/java/com/google/devtools/build/lib/analysis/constraints/RuleContextConstraintSemantics.java b/src/main/java/com/google/devtools/build/lib/analysis/constraints/RuleContextConstraintSemantics.java
index 321f7cd..8485140 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/constraints/RuleContextConstraintSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/constraints/RuleContextConstraintSemantics.java
@@ -43,6 +43,7 @@
 import com.google.devtools.build.lib.analysis.constraints.SupportedEnvironmentsProvider.RemovedEnvironmentCulprit;
 import com.google.devtools.build.lib.analysis.platform.ConstraintValueInfo;
 import com.google.devtools.build.lib.analysis.platform.PlatformProviderUtils;
+import com.google.devtools.build.lib.analysis.test.AnalysisTestResultInfo;
 import com.google.devtools.build.lib.cmdline.Label;
 import com.google.devtools.build.lib.collect.nestedset.NestedSet;
 import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
@@ -968,6 +969,16 @@
           "Both violatedConstraints and targetsResponsibleForIncompatibility are null");
     }
 
+    // If this is an analysis test, RuleConfiguredTargetBuilder performs some additional sanity
+    // checks. Satisfy them with an appropriate provider.
+    if (ruleContext.getRule().isAnalysisTest()) {
+      builder.addNativeDeclaredProvider(
+          new AnalysisTestResultInfo(
+              /*success=*/ false,
+              "This test is incompatible and should not have been run. Please file a bug"
+                  + " upstream."));
+    }
+
     builder.add(RunfilesProvider.class, RunfilesProvider.simple(runfiles));
     if (!outputArtifacts.isEmpty()) {
       Artifact executable = outputArtifacts.get(0);
diff --git a/src/test/shell/integration/target_compatible_with_test.sh b/src/test/shell/integration/target_compatible_with_test.sh
index c89eb11..f71ca36 100755
--- a/src/test/shell/integration/target_compatible_with_test.sh
+++ b/src/test/shell/integration/target_compatible_with_test.sh
@@ -653,6 +653,49 @@
   expect_log '^Hello World$'
 }
 
+# Validates that we successfully skip analysistest rule targets when they
+# depend on incompatible targets.
+function test_analysistest() {
+  setup_skylib_support
+
+  cat > target_skipping/analysistest.bzl <<EOF
+load("${skylib_package}lib:unittest.bzl", "analysistest")
+
+def _analysistest_test_impl(ctx):
+    env = analysistest.begin(ctx)
+    print("Running the test")
+    return analysistest.end(env)
+
+analysistest_test = analysistest.make(_analysistest_test_impl)
+EOF
+
+  cat >> target_skipping/BUILD <<EOF
+load(":analysistest.bzl", "analysistest_test")
+
+analysistest_test(
+    name = "foo3_analysistest_test",
+    target_under_test = ":some_foo3_target",
+)
+EOF
+
+  cd target_skipping || fail "couldn't cd into workspace"
+
+  bazel test --show_result=10  \
+    --host_platform=@//target_skipping:foo3_platform \
+    --toolchain_resolution_debug \
+    --platforms=@//target_skipping:foo3_platform \
+    //target_skipping:foo3_analysistest_test &> "${TEST_log}" \
+    || fail "Bazel failed unexpectedly."
+  expect_log '^//target_skipping:foo3_analysistest_test  *  PASSED in'
+
+  bazel test --show_result=10  \
+    --host_platform=@//target_skipping:foo1_bar1_platform \
+    --platforms=@//target_skipping:foo1_bar1_platform \
+    //target_skipping:all &> "${TEST_log}" \
+    || fail "Bazel failed unexpectedly."
+  expect_log '^Target //target_skipping:foo3_analysistest_test was skipped'
+}
+
 function write_query_test_targets() {
   cat >> target_skipping/BUILD <<EOF
 genrule(
