diff --git a/system_tests/noxfile.py b/system_tests/noxfile.py
index 4ba7cc3..6e2e1b8 100644
--- a/system_tests/noxfile.py
+++ b/system_tests/noxfile.py
@@ -174,11 +174,21 @@
 PYTHON_VERSIONS_SYNC = ["2.7", "3.7"]
 
 
+def default(session, *test_paths):
+    # replace 'session._runner.friendly_name' with
+    # session.name once nox has released a new version
+    # https://github.com/theacodes/nox/pull/386
+    sponge_log = f"--junitxml=system_{str(session._runner.friendly_name)}_sponge_log.xml"
+    session.run(
+        "pytest", sponge_log, *test_paths,
+    )
+
+
 @nox.session(python=PYTHON_VERSIONS_SYNC)
 def service_account_sync(session):
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_service_account.py")
+    default(session, "system_tests_sync/test_service_account.py")
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -187,7 +197,11 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py", "system_tests_sync/test_id_token.py")
+    default(
+        session,
+        "system_tests_sync/test_default.py",
+        "system_tests_sync/test_id_token.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -195,7 +209,9 @@
     session.env[EXPLICIT_CREDENTIALS_ENV] = AUTHORIZED_USER_FILE
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py")
+    default(
+        session, "system_tests_sync/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -205,7 +221,9 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py")
+    default(
+        session, "system_tests_sync/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -214,7 +232,9 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py")
+    default(
+        session, "system_tests_sync/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -222,7 +242,9 @@
     configure_cloud_sdk(session, AUTHORIZED_USER_FILE)
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py")
+    default(
+        session, "system_tests_sync/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -231,7 +253,10 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_default.py")
+    default(
+        session, "system_tests_sync/test_default.py",
+    )
+
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
 def compute_engine(session):
@@ -240,7 +265,9 @@
     # credentials are detected from environment
     del session.virtualenv.env["GOOGLE_APPLICATION_CREDENTIALS"]
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_sync/test_compute_engine.py")
+    default(
+        session, "system_tests_sync/test_compute_engine.py",
+    )
 
 
 @nox.session(python=["2.7"])
@@ -282,7 +309,9 @@
     # Run the tests
     session.env["TEST_APP_URL"] = application_url
     session.chdir(HERE)
-    session.run("pytest", "system_tests_sync/test_app_engine.py")
+    default(
+        session, "system_tests_sync/test_app_engine.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -290,7 +319,9 @@
     session.install(LIBRARY_DIR)
     session.install(*TEST_DEPENDENCIES_SYNC, "google-cloud-pubsub==1.7.0")
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
-    session.run("pytest", "system_tests_sync/test_grpc.py")
+    default(
+        session, "system_tests_sync/test_grpc.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -298,7 +329,9 @@
     session.install(LIBRARY_DIR)
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
-    session.run("pytest", "system_tests_sync/test_requests.py")
+    default(
+        session, "system_tests_sync/test_requests.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -306,7 +339,9 @@
     session.install(LIBRARY_DIR)
     session.install(*TEST_DEPENDENCIES_SYNC)
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
-    session.run("pytest", "system_tests_sync/test_urllib3.py")
+    default(
+        session, "system_tests_sync/test_urllib3.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_SYNC)
@@ -314,16 +349,21 @@
     session.install(LIBRARY_DIR)
     session.install(*TEST_DEPENDENCIES_SYNC, "pyopenssl")
     session.env[EXPLICIT_CREDENTIALS_ENV] = SERVICE_ACCOUNT_FILE
-    session.run("pytest", "system_tests_sync/test_mtls_http.py")
+    default(
+        session, "system_tests_sync/test_mtls_http.py",
+    )
 
 
-#ASYNC SYSTEM TESTS
+# ASYNC SYSTEM TESTS
+
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
 def service_account_async(session):
-    session.install(*(TEST_DEPENDENCIES_SYNC+TEST_DEPENDENCIES_ASYNC))
+    session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_service_account.py")
+    default(
+        session, "system_tests_async/test_service_account.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -332,8 +372,11 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py",
-    "system_tests_async/test_id_token.py")
+    default(
+        session,
+        "system_tests_async/test_default.py", 
+        "system_tests_async/test_id_token.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -341,7 +384,9 @@
     session.env[EXPLICIT_CREDENTIALS_ENV] = AUTHORIZED_USER_FILE
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py")
+    default(
+        session, "system_tests_async/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -351,7 +396,9 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py")
+    default(
+        session, "system_tests_async/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -360,7 +407,9 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py")
+    default(
+        session, "system_tests_async/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -368,7 +417,9 @@
     configure_cloud_sdk(session, AUTHORIZED_USER_FILE)
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py")
+    default(
+        session, "system_tests_async/test_default.py",
+    )
 
 
 @nox.session(python=PYTHON_VERSIONS_ASYNC)
@@ -377,4 +428,6 @@
     session.env[EXPECT_PROJECT_ENV] = "1"
     session.install(*(TEST_DEPENDENCIES_SYNC + TEST_DEPENDENCIES_ASYNC))
     session.install(LIBRARY_DIR)
-    session.run("pytest", "system_tests_async/test_default.py")
+    default(
+        session, "system_tests_async/test_default.py",
+    )
