diff --git a/acts/framework/acts/asserts.py b/acts/framework/acts/asserts.py
index 15cc752..029906e 100644
--- a/acts/framework/acts/asserts.py
+++ b/acts/framework/acts/asserts.py
@@ -44,6 +44,7 @@
         extras: An optional field for extra information to be included in
                 test result.
     """
+    my_msg = None
     try:
         _pyunit_proxy.assertEqual(first, second)
     except Exception as e:
@@ -55,6 +56,8 @@
         my_msg = str(e)
         if msg:
             my_msg = "%s %s" % (my_msg, msg)
+    # This is a hack to remove the stacktrace produced by the above exception.
+    if my_msg is not None:
         fail(my_msg, extras=extras)
 
 
@@ -75,6 +78,7 @@
     :param extras: Extra object passed to test failure handler
     :return:
     """
+    my_msg = None
     try:
         if delta:
             _pyunit_proxy.assertAlmostEqual(
@@ -86,6 +90,8 @@
         my_msg = str(e)
         if msg:
             my_msg = "%s %s" % (my_msg, msg)
+    # This is a hack to remove the stacktrace produced by the above exception.
+    if my_msg is not None:
         fail(my_msg, extras=extras)
 
 
diff --git a/acts/framework/acts/base_test.py b/acts/framework/acts/base_test.py
index 873c7eb..8c28137 100755
--- a/acts/framework/acts/base_test.py
+++ b/acts/framework/acts/base_test.py
@@ -16,14 +16,15 @@
 import logging
 import os
 import traceback
+from concurrent.futures import ThreadPoolExecutor
 
 from acts import asserts
+from acts import keys
 from acts import logger
 from acts import records
 from acts import signals
 from acts import tracelogger
 from acts import utils
-from concurrent.futures import ThreadPoolExecutor
 
 # Macro strings for test result reporting
 TEST_CASE_TOKEN = "[Test Case]"
@@ -400,7 +401,11 @@
                     tr_record.add_error("teardown_test", e)
                     self._exec_procedure_func(self._on_exception, tr_record)
         except (signals.TestFailure, AssertionError) as e:
-            self.log.error(e)
+            if self.user_params.get(
+                    keys.Config.key_test_failure_tracebacks.value, False):
+                self.log.exception(e)
+            else:
+                self.log.error(e)
             tr_record.test_fail(e)
             self._exec_procedure_func(self._on_fail, tr_record)
         except signals.TestSkip as e:
@@ -500,10 +505,10 @@
 
             if format_args:
                 self.exec_one_testcase(test_name, test_func,
-                                       args + (setting, ), **kwargs)
+                                       args + (setting,), **kwargs)
             else:
                 self.exec_one_testcase(test_name, test_func,
-                                       (setting, ) + args, **kwargs)
+                                       (setting,) + args, **kwargs)
 
             if len(self.results.passed) - previous_success_cnt != 1:
                 failed_settings.append(setting)
diff --git a/acts/framework/acts/config_parser.py b/acts/framework/acts/config_parser.py
index 4a9625f..fece155 100755
--- a/acts/framework/acts/config_parser.py
+++ b/acts/framework/acts/config_parser.py
@@ -25,7 +25,8 @@
 
 # An environment variable defining the base location for ACTS logs.
 _ENV_ACTS_LOGPATH = 'ACTS_LOGPATH'
-
+# An environment variable that enables test case failures to log stack traces.
+_ENV_TEST_FAILURE_TRACEBACKS = 'ACTS_TEST_FAILURE_TRACEBACKS'
 # An environment variable defining the test search paths for ACTS.
 _ENV_ACTS_TESTPATHS = 'ACTS_TESTPATHS'
 _PATH_SEPARATOR = ':'
@@ -284,6 +285,10 @@
               (os.environ[_ENV_ACTS_TESTPATHS]))
         configs[keys.Config.key_test_paths.value] = os.environ[
             _ENV_ACTS_TESTPATHS].split(_PATH_SEPARATOR)
+    if (keys.Config.key_test_failure_tracebacks not in configs
+            and _ENV_TEST_FAILURE_TRACEBACKS in os.environ):
+        configs[keys.Config.key_test_failure_tracebacks.value] = os.environ[
+            _ENV_TEST_FAILURE_TRACEBACKS]
 
     # Add the global paths to the global config.
     k_log_path = keys.Config.key_log_path.value
diff --git a/acts/framework/acts/keys.py b/acts/framework/acts/keys.py
index d1f6bf7..36a19ac 100644
--- a/acts/framework/acts/keys.py
+++ b/acts/framework/acts/keys.py
@@ -35,6 +35,7 @@
     key_address = "Address"
     key_random = "random"
     key_test_case_iterations = "test_case_iterations"
+    key_test_failure_tracebacks = "test_failure_tracebacks"
     # Config names for controllers packaged in ACTS.
     key_android_device = "AndroidDevice"
     key_chameleon_device = "ChameleonDevice"
