diff --git a/command.go b/command.go
index fbefc053..dbb2c298 100644
--- a/command.go
+++ b/command.go
@@ -23,6 +23,7 @@ import (
 	"fmt"
 	"io"
 	"os"
+	"path/filepath"
 	"sort"
 	"strings"
 
@@ -1100,11 +1101,8 @@ func (c *Command) ExecuteC() (cmd *Command, err error) {
 
 	args := c.args
 
-	// If running unit tests, we don't want to take the os.Args, see #155 and #2173.
-	// For example, the following would fail:
-	//   go test -c -o foo.test
-	//   ./foo.test -test.run TestNoArgs
-	if c.args == nil && !isTesting() {
+	// Workaround FAIL with "go test -v" or "cobra.test -test.v", see #155
+	if c.args == nil && filepath.Base(os.Args[0]) != "cobra.test" {
 		args = os.Args[1:]
 	}
 
diff --git a/command_go120.go b/command_go120.go
deleted file mode 100644
index 23bc0feb..00000000
--- a/command_go120.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2013-2024 The Cobra Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-//go:build !go1.21
-// +build !go1.21
-
-package cobra
-
-import (
-	"os"
-	"strings"
-)
-
-// based on golang.org/x/mod/internal/lazyregexp: https://cs.opensource.google/go/x/mod/+/refs/tags/v0.19.0:internal/lazyregexp/lazyre.go;l=66
-// For a non-go-test program which still has a name ending with ".test[.exe]", it will need to either:
-// 1- Use go >= 1.21, or
-// 2- call "rootCmd.SetArgs(os.Args[1:])" before calling "rootCmd.Execute()"
-var inTest = len(os.Args) > 0 && strings.HasSuffix(strings.TrimSuffix(os.Args[0], ".exe"), ".test")
-
-func isTesting() bool {
-	return inTest
-}
diff --git a/command_go121.go b/command_go121.go
deleted file mode 100644
index 8b69f152..00000000
--- a/command_go121.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2013-2024 The Cobra Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-//go:build go1.21
-// +build go1.21
-
-package cobra
-
-import "testing"
-
-func isTesting() bool {
-	// Only available starting with go 1.21
-	return testing.Testing()
-}
diff --git a/command_test.go b/command_test.go
index a379460a..7e7c3418 100644
--- a/command_test.go
+++ b/command_test.go
@@ -2921,16 +2921,3 @@ func TestUnknownFlagShouldReturnSameErrorRegardlessOfArgPosition(t *testing.T) {
 		})
 	}
 }
-
-// This tests verifies that when running unit tests, os.Args are not used.
-// This is because we don't want to process any arguments that are provided
-// by "go test"; instead, unit tests must set the arguments they need using
-// rootCmd.SetArgs().
-func TestNoOSArgsWhenTesting(t *testing.T) {
-	root := &Command{Use: "root", Run: emptyRun}
-	os.Args = append(os.Args, "--unknown")
-
-	if _, err := root.ExecuteC(); err != nil {
-		t.Errorf("error: %v", err)
-	}
-}