diff --git a/internal/integrationtest/profiles/profiles_test.go b/internal/integrationtest/profiles/profiles_test.go
new file mode 100644
index 00000000000..9cd1ffcb556
--- /dev/null
+++ b/internal/integrationtest/profiles/profiles_test.go
@@ -0,0 +1,71 @@
+// This file is part of arduino-cli.
+//
+// Copyright 2022 ARDUINO SA (http://www.arduino.cc/)
+//
+// This software is released under the GNU General Public License version 3,
+// which covers the main part of arduino-cli.
+// The terms of this license can be found at:
+// https://www.gnu.org/licenses/gpl-3.0.en.html
+//
+// You can be released from the requirements of the above licenses by purchasing
+// a commercial license. Buying such a license is mandatory if you want to
+// modify or otherwise use the software for commercial activities involving the
+// Arduino software without disclosing the source code of your own applications.
+// To purchase a commercial license, send an email to license@arduino.cc.
+
+package profiles_test
+
+import (
+	"testing"
+
+	"github.com/arduino/arduino-cli/internal/integrationtest"
+	"github.com/stretchr/testify/require"
+)
+
+func TestCompileWithProfiles(t *testing.T) {
+	env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
+	defer env.CleanUp()
+
+	// Init the environment explicitly
+	_, _, err := cli.Run("core", "update-index")
+	require.NoError(t, err)
+
+	// copy sketch_with_profile into the working directory
+	sketchPath := cli.CopySketch("sketch_with_profile")
+
+	// use profile without a required library -> should fail
+	_, _, err = cli.Run("lib", "install", "Arduino_JSON")
+	require.NoError(t, err)
+	_, _, err = cli.Run("compile", "-m", "avr1", sketchPath.String())
+	require.Error(t, err)
+
+	// use profile with the required library -> should succeed
+	_, _, err = cli.Run("compile", "-m", "avr2", sketchPath.String())
+	require.NoError(t, err)
+}
+
+func TestBuilderDidNotCatchLibsFromUnusedPlatforms(t *testing.T) {
+	env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
+	defer env.CleanUp()
+
+	// Init the environment explicitly
+	_, _, err := cli.Run("core", "update-index")
+	require.NoError(t, err)
+
+	// copy sketch into the working directory
+	sketchPath := cli.CopySketch("sketch_with_error_including_wire")
+
+	// install two platforms with the Wire library bundled
+	_, _, err = cli.Run("core", "install", "arduino:avr")
+	require.NoError(t, err)
+	_, _, err = cli.Run("core", "install", "arduino:samd")
+	require.NoError(t, err)
+
+	// compile for AVR
+	stdout, stderr, err := cli.Run("compile", "-b", "arduino:avr:uno", sketchPath.String())
+	require.Error(t, err)
+
+	// check that the libary resolver did not take the SAMD bundled Wire library into account
+	require.NotContains(t, string(stdout), "samd")
+	require.NotContains(t, string(stderr), "samd")
+}
diff --git a/test/testdata/sketch_with_error_including_wire/sketch_with_error_including_wire.ino b/internal/integrationtest/testdata/sketch_with_error_including_wire/sketch_with_error_including_wire.ino
similarity index 100%
rename from test/testdata/sketch_with_error_including_wire/sketch_with_error_including_wire.ino
rename to internal/integrationtest/testdata/sketch_with_error_including_wire/sketch_with_error_including_wire.ino
diff --git a/test/testdata/sketch_with_profile/sketch.yaml b/internal/integrationtest/testdata/sketch_with_profile/sketch.yaml
similarity index 100%
rename from test/testdata/sketch_with_profile/sketch.yaml
rename to internal/integrationtest/testdata/sketch_with_profile/sketch.yaml
diff --git a/test/testdata/sketch_with_profile/sketch_with_profile.ino b/internal/integrationtest/testdata/sketch_with_profile/sketch_with_profile.ino
similarity index 100%
rename from test/testdata/sketch_with_profile/sketch_with_profile.ino
rename to internal/integrationtest/testdata/sketch_with_profile/sketch_with_profile.ino
diff --git a/test/test_profiles.py b/test/test_profiles.py
deleted file mode 100644
index 163adf734f1..00000000000
--- a/test/test_profiles.py
+++ /dev/null
@@ -1,49 +0,0 @@
-# This file is part of arduino-cli.
-#
-# Copyright 2020 ARDUINO SA (http://www.arduino.cc/)
-#
-# This software is released under the GNU General Public License version 3,
-# which covers the main part of arduino-cli.
-# The terms of this license can be found at:
-# https://www.gnu.org/licenses/gpl-3.0.en.html
-#
-# You can be released from the requirements of the above licenses by purchasing
-# a commercial license. Buying such a license is mandatory if you want to modify or
-# otherwise use the software for commercial activities involving the Arduino
-# software without disclosing the source code of your own applications. To purchase
-# a commercial license, send an email to license@arduino.cc.
-
-
-def test_compile_with_profiles(run_command, copy_sketch):
-    # Init the environment explicitly
-    run_command(["core", "update-index"])
-
-    sketch_path = copy_sketch("sketch_with_profile")
-
-    # use profile without a required library -> should fail
-    assert run_command(["lib", "install", "Arduino_JSON"])
-    result = run_command(["compile", "-m", "avr1", sketch_path])
-    assert result.failed
-
-    # use profile with the required library -> should succeed
-    result = run_command(["compile", "-m", "avr2", sketch_path])
-    assert result.ok
-
-
-def test_builder_did_not_catch_libs_from_unused_platforms(run_command, copy_sketch):
-    # Init the environment explicitly
-    run_command(["core", "update-index"])
-
-    sketch_path = copy_sketch("sketch_with_error_including_wire")
-
-    # install two platforms with the Wire library bundled
-    assert run_command(["core", "install", "arduino:avr"])
-    assert run_command(["core", "install", "arduino:samd"])
-
-    # compile for AVR
-    result = run_command(["compile", "-b", "arduino:avr:uno", sketch_path])
-    assert result.failed
-
-    # check that the libary resolver did not take the SAMD bundled Wire library into account
-    assert "samd" not in result.stdout
-    assert "samd" not in result.stderr