ci: create sponge_log.xml files (#722)

* ci: create sponge_log.xml files

* test: fix noxfile

Co-authored-by: arithmetic1728 <58957152+arithmetic1728@users.noreply.github.com>
diff --git a/.gitignore b/.gitignore
index 1f0b7e3..ca0c074 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,6 +22,7 @@
 # Coverage files
 .coverage
 coverage.xml
+*sponge_log.xml
 nosetests.xml
 htmlcov/
 
diff --git a/noxfile.py b/noxfile.py
index 168c1e2..3b4863c 100644
--- a/noxfile.py
+++ b/noxfile.py
@@ -87,6 +87,7 @@
     session.install(".")
     session.run(
         "pytest",
+        f"--junitxml=unit_{session.python}_sponge_log.xml",
         "--cov=google.auth",
         "--cov=google.oauth2",
         "--cov=tests",
@@ -100,7 +101,12 @@
     session.install(".")
     session.install(*TEST_DEPENDENCIES)
     session.run(
-        "pytest", "--cov=google.auth", "--cov=google.oauth2", "--cov=tests", "tests"
+        "pytest",
+        f"--junitxml=unit_{session.python}_sponge_log.xml",
+        "--cov=google.auth",
+        "--cov=google.oauth2",
+        "--cov=tests",
+        "tests",
     )
 
 
@@ -170,6 +176,7 @@
     session.install(".")
     session.run(
         "pytest",
+        f"--junitxml=unit_{session.python}_sponge_log.xml",
         "--cov=google.auth",
         "--cov=google.oauth2",
         "--cov=tests",
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",
+    )