在 C# 中,执行程序可以使用以下命令检测它是否在调试器中运行:
System.Diagnostics.Debugger.IsAttached
Run Code Online (Sandbox Code Playgroud)
在 Go 中有等价物吗?我有一些超时,我想在我逐步执行代码时将其禁用。谢谢!
我正在使用 GoLand 调试器。
我正在尝试在现有的 Go 项目上自动运行单元测试。它已经有很多现有的测试来执行非单元测试的事情,例如联系外部服务和写入数据库。我想使用命名约定从自动化中排除这些测试文件。假设项目的结构是这样的:
gopath/
|-package1.go
|-package1_unit_test.go
|-package1_e2e_test.go
|-package2/
|-package2.go
|-package2_unit_test.go
|-package2_e2e_test.go
Run Code Online (Sandbox Code Playgroud)
我可以go test ./...运行所有测试。如果我在单元测试的名称中包含“UnitTest”,我就可以运行go test ./... -run UnitTest,但这仍然会运行 e2e 测试中的启动代码。我需要它完全忽略这些文件。有人建议运行go test $(go list ./... | grep -v /e2e/)但go list输出目录名,而不是文件名,所以这是行不通的。
是的,理想情况下,e2e 测试应该放在不同的目录中,而不是依赖于包的内部结构,但不幸的是,这不是我的同事编写它们的方式。我现在正在寻找快速修复方法!