def METHOD_NAME(self, test: str, spec: TestSpec, resource: str, nproc: int) -> Optional[str]:
    """Check if a test case should be skipped prior to running, returning the reason for skipping
    Args:
        test (str): Name of test
        spec (TestSpec): Test case specification
        resource (str): libCEED backend
        nproc (int): Number of MPI processes to use when running test case
    Returns:
        Optional[str]: Skip reason, or `None` if test case should not be skipped
    """
    if contains_any(resource, ['occa']) and startswith_any(test, ['t4', 't5', 'ex', 'mfem', 'nek', 'petsc', 'fluids', 'solids']):
        return 'OCCA mode not supported'
    if test.startswith('t318') and contains_any(resource, ['/gpu/cuda/ref']):
        return 'CUDA ref backend not supported'
    if test.startswith('t506') and contains_any(resource, ['/gpu/cuda/shared']):
        return 'CUDA shared backend not supported'