diff --git a/test/java/common/rules/common_launcher_java_binary_tests.bzl b/test/java/common/rules/common_launcher_java_binary_tests.bzl
index b3ffd0c..f09d2dc 100644
--- a/test/java/common/rules/common_launcher_java_binary_tests.bzl
+++ b/test/java/common/rules/common_launcher_java_binary_tests.bzl
@@ -4,6 +4,7 @@
 load("@rules_testing//lib:util.bzl", "util")
 load("//java:java_binary.bzl", "java_binary")
 load("//java:java_library.bzl", "java_library")
+load("//java:java_test.bzl", "java_test")
 load("//test/java/testutil:artifact_closure.bzl", "artifact_closure")
 load("//test/java/testutil:binary_executable_subject.bzl", "expect_that_executable")
 load("//test/java/testutil:mock_java_toolchain.bzl", "mock_java_toolchain")
@@ -167,6 +168,23 @@
         "common.rules.{test_name}.Binary".format(test_name = env.ctx.label.name),
     )
 
+def _test_java_test_main_class(name):
+    util.helper_target(
+        java_test,
+        name = name + "/Test",
+    )
+
+    analysis_test(
+        name = name,
+        impl = _test_java_test_main_class_impl,
+        target = name + "/Test",
+    )
+
+def _test_java_test_main_class_impl(env, target):
+    expect_that_executable.of_target(env, target).test_suite().equals(
+        "common.rules.{test_name}.Test".format(test_name = env.ctx.label.name),
+    )
+
 def java_binary_launcher_tests(name):
     test_suite(
         name = name,
@@ -177,5 +195,6 @@
             _test_java_binary_transitive_dependency_from_java_library,
             _test_java_binary_explicit_main_class,
             _test_java_binary_implicit_main_class,
+            _test_java_test_main_class,
         ],
     )
diff --git a/test/java/testutil/binary_executable_subject.bzl b/test/java/testutil/binary_executable_subject.bzl
index 189e1d2..818d66e 100644
--- a/test/java/testutil/binary_executable_subject.bzl
+++ b/test/java/testutil/binary_executable_subject.bzl
@@ -1,12 +1,14 @@
 """Custom rules_testing subject for java_binary/java_test executable output"""
 
 load("@rules_testing//lib:truth.bzl", "subjects")
+load("//java/common:java_semantics.bzl", "semantics")
 
 def _of_target(env, target):
     executable = target[DefaultInfo].files_to_run.executable.short_path
     action_subject = env.expect.that_target(target).action_generating(executable)
     public = struct(
         java_start_class = lambda: _java_start_class_subject(action_subject),
+        test_suite = lambda: _test_suite_subject(action_subject),
     )
     return public
 
@@ -21,6 +23,22 @@
             desc = "java_start_class",
         ).offset(0, factory = subjects.str)
 
+def _test_suite_subject(action):
+    if action.actual.substitutions:
+        jvm_flags = action.substitutions().get("%jvm_flags%", factory = subjects.str).split(" ")
+    else:
+        # Windows
+        jvm_flags = action.argv().transform(
+            filter = lambda e: e.startswith("jvm_flags="),
+            map_each = lambda e: e.split("=", 1)[1],
+            desc = "jvm_flags",
+        ).offset(0, factory = subjects.str).split("\t")
+    return jvm_flags.transform(
+        filter = lambda e: e.startswith("-D" + semantics.TEST_SUITE_PROPERTY_NAME + "="),
+        map_each = lambda e: e.split("=", 1)[1],
+        desc = semantics.TEST_SUITE_PROPERTY_NAME,
+    ).offset(0, factory = subjects.str)
+
 expect_that_executable = struct(
     of_target = _of_target,
 )
