diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index be7a417..40e9738 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -2235,12 +2235,13 @@
       }
     }
 
-    // An instance of the built-in 'test_suite' rule with no explicit 'tests'
-    // attribute gets an '$implicit_tests' attribute, whose value is a
-    // shared per-package list of all test labels, populated later.
+    // An instance of the built-in 'test_suite' rule with an undefined or empty 'tests' attribute
+    // attribute gets an '$implicit_tests' attribute, whose value is a shared per-package list of
+    // all test labels, populated later.
     if (this.name.equals("test_suite")) {
       Attribute implicitTests = this.getAttributeByName("$implicit_tests");
-      if (implicitTests != null && !definedAttrIndices.get(this.getAttributeIndex("tests"))) {
+      if (implicitTests != null
+          && NonconfigurableAttributeMapper.of(rule).get("tests", BuildType.LABEL_LIST).isEmpty()) {
         boolean explicit = true; // so that it appears in query output
         rule.setAttributeValue(implicitTests, pkgBuilder.testSuiteImplicitTests, explicit);
       }
diff --git a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
index 48247c5..24dc17e 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/PackageFactoryTest.java
@@ -453,14 +453,16 @@
             "/x/BUILD",
             "java_test(name='j')",
             "test_suite(name='t1')",
-            "test_suite(name='t2', tests=['//foo'])",
+            "test_suite(name='t2', tests=[])",
             "test_suite(name='t3', tests=['//foo'])",
+            "test_suite(name='t4', tests=['//foo'])",
             "cc_test(name='c')");
     Package pkg = packages.createPackage("x", RootedPath.toRootedPath(root, path));
 
     // Things to note:
-    // - the t1 refers to both :j and :c, even though :c is a forward reference.
-    // - $implicit_tests is empty unless tests=[]
+    // - The '$implicit_tests' attribute is unset unless the 'tests' attribute is unset or empty.
+    // - The '$implicit_tests' attribute's value for t1 and t2 is magically able to contain both j
+    //    and c, even though c is instantiated after t1 and t2 are.
 
     assertThat(attributes(pkg.getRule("t1")).get("$implicit_tests", BuildType.LABEL_LIST))
         .containsExactlyElementsIn(
@@ -468,9 +470,14 @@
                 Label.parseAbsolute("//x:c", ImmutableMap.of()),
                 Label.parseAbsolute("//x:j", ImmutableMap.of())));
     assertThat(attributes(pkg.getRule("t2")).get("$implicit_tests", BuildType.LABEL_LIST))
-        .isEmpty();
+        .containsExactlyElementsIn(
+            Sets.newHashSet(
+                Label.parseAbsolute("//x:c", ImmutableMap.of()),
+                Label.parseAbsolute("//x:j", ImmutableMap.of())));
     assertThat(attributes(pkg.getRule("t3")).get("$implicit_tests", BuildType.LABEL_LIST))
         .isEmpty();
+    assertThat(attributes(pkg.getRule("t4")).get("$implicit_tests", BuildType.LABEL_LIST))
+        .isEmpty();
   }
 
   @Test
