diff --git a/src/accelerate/test_utils/testing.py b/src/accelerate/test_utils/testing.py
index ac6df7741..0b8e2250f 100644
--- a/src/accelerate/test_utils/testing.py
+++ b/src/accelerate/test_utils/testing.py
@@ -26,7 +26,7 @@
 import torch
 
 from ..state import AcceleratorState, is_tpu_available
-from ..utils import gather, is_tensorflow_available
+from ..utils import gather, is_comet_ml_available, is_tensorflow_available, is_wandb_available
 
 
 def parse_flag_from_env(key, default=False):
@@ -53,10 +53,51 @@ def slow(test_case):
     Decorator marking a test as slow. Slow tests are skipped by default. Set the RUN_SLOW environment variable to a
     truthy value to run them.
     """
-    if not _run_slow_tests:
-        return unittest.skip("test is slow")(test_case)
-    else:
-        return test_case
+    return unittest.skipUnless(_run_slow_tests, "test is slow")(test_case)
+
+
+def require_cuda(test_case):
+    """
+    Decorator marking a test that requires CUDA. These tests are skipped when there are no GPU available.
+    """
+    return unittest.skipUnless(torch.cuda.is_available(), "test requires a GPU")(test_case)
+
+
+def require_tpu(test_case):
+    """
+    Decorator marking a test that requires TPUs. These tests are skipped when there are no TPUs available.
+    """
+    return unittest.skipUnless(is_tpu_available(), "test requires TPU")(test_case)
+
+
+def require_multi_gpu(test_case):
+    """
+    Decorator marking a test that requires a multi-GPU setup. These tests are skipped on a machine without multiple
+    GPUs.
+    """
+    return unittest.skipUnless(torch.cuda.device_count() > 1, "test requires multiple GPUs")(test_case)
+
+
+def require_tensorflow(test_case):
+    """
+    Decorator marking a test that requires TensorFlow installed. These tests are skipped when TensorFlow isn't
+    installed
+    """
+    return unittest.skipUnless(is_tensorflow_available(), "test requires TensorFlow")(test_case)
+
+
+def require_wandb(test_case):
+    """
+    Decorator marking a test that requires wandb installed. These tests are skipped when wandb isn't installed
+    """
+    return unittest.skipUnless(is_wandb_available(), "test requires wandb")(test_case)
+
+
+def require_comet_ml(test_case):
+    """
+    Decorator marking a test that requires comet_ml installed. These tests are skipped when comet_ml isn't installed
+    """
+    return unittest.skipUnless(is_comet_ml_available(), "test requires comet_ml")(test_case)
 
 
 class TempDirTestCase(unittest.TestCase):
@@ -136,48 +177,6 @@ def are_the_same_tensors(tensor):
     return True
 
 
-def require_cuda(test_case):
-    """
-    Decorator marking a test that requires CUDA. These tests are skipped when there are no GPU available.
-    """
-    if not torch.cuda.is_available():
-        return unittest.skip("test requires a GPU")(test_case)
-    else:
-        return test_case
-
-
-def require_tpu(test_case):
-    """
-    Decorator marking a test that requires TPUs. These tests are skipped when there are no TPUs available.
-    """
-    if not is_tpu_available():
-        return unittest.skip("test requires TPU")(test_case)
-    else:
-        return test_case
-
-
-def require_multi_gpu(test_case):
-    """
-    Decorator marking a test that requires a multi-GPU setup. These tests are skipped on a machine without multiple
-    GPUs.
-    """
-    if torch.cuda.device_count() < 2:
-        return unittest.skip("test requires multiple GPUs")(test_case)
-    else:
-        return test_case
-
-
-def require_tensorflow(test_case):
-    """
-    Decorator marking a test that requires TensorFlow installed. These tests are skipped when TensorFlow isn't
-    installed
-    """
-    if not is_tensorflow_available():
-        return unittest.skip("test requires TensorFlow")(test_case)
-    else:
-        return test_case
-
-
 class _RunOutput:
     def __init__(self, returncode, stdout, stderr):
         self.returncode = returncode
diff --git a/tests/test_tracking.py b/tests/test_tracking.py
index c5b940a46..e9a2170ee 100644
--- a/tests/test_tracking.py
+++ b/tests/test_tracking.py
@@ -26,10 +26,19 @@
 
 # We use TF to parse the logs
 from accelerate import Accelerator
-from accelerate.test_utils.testing import MockingTestCase, TempDirTestCase, require_tensorflow
+from accelerate.test_utils.testing import (
+    MockingTestCase,
+    TempDirTestCase,
+    require_comet_ml,
+    require_tensorflow,
+    require_wandb,
+)
 from accelerate.tracking import CometMLTracker, GeneralTracker
-from accelerate.utils import is_tensorflow_available
-from comet_ml import OfflineExperiment
+from accelerate.utils import is_comet_ml_available, is_tensorflow_available
+
+
+if is_comet_ml_available():
+    from comet_ml import OfflineExperiment
 
 
 if is_tensorflow_available():
@@ -110,6 +119,7 @@ def test_logging_dir(self):
             _ = Accelerator(log_with="tensorboard", logging_dir=dirpath)
 
 
+@require_wandb
 @mock.patch.dict(os.environ, {"WANDB_MODE": "offline"})
 class WandBTrackingTest(TempDirTestCase, MockingTestCase):
     def setUp(self):
@@ -179,6 +189,7 @@ def offline_init(self, run_name: str, tmpdir: str):
     logger.info("Make sure to log any initial configurations with `self.store_init_configuration` before training!")
 
 
+@require_comet_ml
 @mock.patch.object(CometMLTracker, "__init__", offline_init)
 class CometMLTest(unittest.TestCase):
     @staticmethod



Discussion: body: _The documentation is not available anymore as the PR was closed or merged._