--- a/tests/plotting/test_charts.py
+++ b/tests/plotting/test_charts.py
@@ -2,6 +2,7 @@
 
 from __future__ import annotations
 
+import importlib
 import itertools
 import platform
 import weakref
@@ -25,6 +26,12 @@
                                reason=f"test HTTP requests are refused on {platform.machine()}")
 
 
+# charts fail if paraview is used to provide vtkmodules
+# since it does not provide vtkPythonContext2D
+if importlib.util.find_spec("paraview"):
+    pytestmark = pytest.mark.skip("paraview provides vtk without vtkPythonContext2D required for charts")
+
+
 def vtk_array_to_tuple(arr):
     return tuple(arr.GetValue(i) for i in range(arr.GetNumberOfValues()))
 
--- a/tests/plotting/test_plotting.py
+++ b/tests/plotting/test_plotting.py
@@ -7,6 +7,7 @@
 from __future__ import annotations
 
 import inspect
+import importlib
 import io
 import os
 import pathlib
@@ -48,6 +49,11 @@
 
     from pytest_mock import MockerFixture
 
+# charts fail if paraview is used to provide vtkmodules
+# since it does not provide vtkPythonContext2D
+xfail_charts = pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                                reason="paraview provides vtk without vtkPythonContext2D required for charts")
+
 # skip all tests if unable to render
 pytestmark = pytest.mark.skip_plotting
 
@@ -2791,6 +2797,7 @@
 
 @pytest.mark.skip_mac('MacOS CI fails when downloading examples')
 @pytest.mark.needs_vtk_version(9, 2, 0)
+@xfail_charts
 def test_chart_plot():
     """Basic test to verify chart plots correctly"""
     # Chart 1 (bottom left)
@@ -2858,6 +2865,7 @@
 
 
 @skip_9_1_0
+@xfail_charts
 def test_chart_matplotlib_plot(verify_image_cache):
     """Test integration with matplotlib"""
     # Seeing CI failures for Conda job that need to be addressed
@@ -2890,6 +2898,7 @@
 
 
 @pytest.mark.usefixtures('no_images_to_verify')
+@xfail_charts
 def test_get_charts():
     """Test that the get_charts method is retuning a list of charts"""
     chart = pv.Chart2D()
@@ -3655,6 +3664,7 @@
 
 
 @skip_9_1_0
+@xfail_charts
 def test_charts_sin():
     x = np.linspace(0, 2 * np.pi, 20)
     y = np.sin(x)
--- a/tests/core/test_polydata.py
+++ b/tests/core/test_polydata.py
@@ -1,5 +1,6 @@
 from __future__ import annotations
 
+import importlib
 from math import pi
 import pathlib
 from pathlib import Path
@@ -1245,6 +1246,8 @@
         arc.extrude_rotate()
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_flip_normals(sphere):
     with pytest.warns(
         PyVistaDeprecationWarning, match='`flip_normals` is deprecated. Use `flip_faces` instead'
--- a/tests/core/test_dataset_filters.py
+++ b/tests/core/test_dataset_filters.py
@@ -1,6 +1,7 @@
 from __future__ import annotations
 
 import functools
+import importlib
 import itertools
 from pathlib import Path
 import platform
@@ -34,6 +35,9 @@
 if TYPE_CHECKING:
     from pytest_mock import MockerFixture
 
+xfail_paraview = pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                                  reason="paraview provides vtk without vtkImageDilateErode3D")
+
 normals = ['x', 'y', '-z', (1, 1, 1), (3.3, 5.4, 0.8)]
 
 # test for i386/i486/i586/i686
@@ -2918,6 +2922,7 @@
     )
 
 
+@xfail_paraview
 def test_image_dilate_erode_output_type():
     point_data = np.zeros((10, 10, 10))
     point_data[4, 4, 4] = 1
@@ -2929,6 +2934,7 @@
     assert isinstance(volume_dilate_erode, pv.ImageData)
 
 
+@xfail_paraview
 def test_image_dilate_erode_dilation():
     point_data = np.zeros((10, 10, 10))
     point_data[4, 4, 4] = 1
@@ -2945,6 +2951,7 @@
     )
 
 
+@xfail_paraview
 def test_image_dilate_erode_erosion():
     point_data = np.zeros((10, 10, 10))
     point_data[4, 4, 4] = 1
@@ -2958,6 +2965,7 @@
     )
 
 
+@xfail_paraview
 def test_image_dilate_erode_cell_data_specified():
     point_data = np.zeros((10, 10, 10))
     cell_data = np.zeros((9, 9, 9))
@@ -2968,6 +2976,7 @@
         volume.image_dilate_erode(scalars='cell_data')
 
 
+@xfail_paraview
 def test_image_dilate_erode_cell_data_active():
     point_data = np.zeros((10, 10, 10))
     cell_data = np.zeros((9, 9, 9))
--- a/tests/core/test_reader.py
+++ b/tests/core/test_reader.py
@@ -1,5 +1,6 @@
 from __future__ import annotations
 
+import importlib
 from pathlib import Path
 import pickle
 import platform
@@ -1076,6 +1077,8 @@
 @pytest.mark.needs_vtk_version(
     9, 1, 0, reason='Requires VTK>=9.1.0 for a concrete PartitionedDataSetWriter class.'
 )
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_xmlpartitioneddatasetreader(tmpdir):
     tmpfile = tmpdir.join('temp.vtpd')
     partitions = pv.PartitionedDataSet(
--- a/tests/core/test_composite.py
+++ b/tests/core/test_composite.py
@@ -1,6 +1,7 @@
 from __future__ import annotations
 
 from collections.abc import Generator
+import importlib
 import itertools
 import pathlib
 import platform
@@ -412,6 +413,8 @@
     assert multi_z_bounds == poly_z_bounds
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_multi_block_eq(multiblock_all_with_nested_and_none):
     multi = multiblock_all_with_nested_and_none
     other = multi.copy()
--- a/tests/core/test_grid.py
+++ b/tests/core/test_grid.py
@@ -1,5 +1,6 @@
 from __future__ import annotations
 
+import importlib
 import pathlib
 from pathlib import Path
 import re
@@ -932,6 +933,8 @@
         assert np.allclose(structured.cell_data[k], v)
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_create_image_data_from_specs():
     # empty
     grid = pv.ImageData()
--- a/tests/core/test_utilities.py
+++ b/tests/core/test_utilities.py
@@ -4,6 +4,7 @@
 
 from collections.abc import Iterable
 import contextlib
+import importlib
 import json
 import os
 from pathlib import Path
@@ -749,6 +750,8 @@
     alg.Update()
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_vtk_error_catcher():
     # raise_errors: False
     error_catcher = pv.core.utilities.observers.VtkErrorCatcher()
--- a/tests/plotting/test_collection.py
+++ b/tests/plotting/test_collection.py
@@ -3,9 +3,11 @@
 from __future__ import annotations
 
 import gc
+import importlib
 import weakref
 
 import numpy as np
+import pytest
 import vtk
 
 import pyvista as pv
@@ -48,6 +50,8 @@
     pl.add_mesh(sphere, scalars=range(sphere.n_points))
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides vtk without vtkPythonContext2D required for charts")
 def test_plotting_collection():
     """Ensure that we don't leak Plotter, Renderer and Charts instances."""
     pl = pv.Plotter()
--- a/tests/core/test_dataobject.py
+++ b/tests/core/test_dataobject.py
@@ -1,6 +1,7 @@
 from __future__ import annotations
 
 from collections import UserDict
+import importlib
 import json
 import multiprocessing
 import pickle
@@ -47,6 +48,8 @@
     assert mesh1 != mesh3
 
 
+@pytest.mark.xfail(importlib.util.find_spec("paraview"),
+                   reason="paraview provides inconsistent vtk")
 def test_uniform_eq():
     orig = examples.load_uniform()
     copy = orig.copy(deep=True)
