Production code imports `testing` package (`internal/config/config.go`, `internal/cmdparser/test.go`)
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- go
- Lĩnh vực
- testing-qa
Hướng nghiên cứu
Bắt đầu bằng cách đọc internal/config/config.go và internal/cmdparser/test.go, sau đó kiểm tra các caller của test helper giữa các package của chúng. Refactor các helper để các file được compile cho production không còn import package testing của Go, lựa chọn giữa input dựa trên string và các test subpackage chuyên biệt. Hoàn thành khi các import đó được loại bỏ và các test hiện có vẫn pass.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Summary
internal/config/config.go and internal/cmdparser/test.go are non-_test.go files that import the standard library testing package, which is a Go anti-pattern — it pulls test-only code (and its transitive deps) into production builds.
Noted by @shueybubbles in https://github.com/microsoft/go-sqlcmd/pull/747#discussion_r3443879059.
Details
internal/config/config.goimportstestingsolely forSetFileNameForTest(t *testing.T), which only ever callst.Name().internal/cmdparser/test.goimportstestingforTestSetup(t *testing.T)and related helpers.
Both files exist to provide test helpers callable from _test.go files in other packages, which is why they couldn't simply be renamed _test.go. However, the dependency on testing from production-compiled files is still undesirable.
Introduced in commit 10ee238 ("Modern CLI - Part 2"), long predating PR #747.
Suggested fix
Minimal-impact option:
- Change
config.SetFileNameForTestto accept astring(the test name) instead of*testing.T. Callers passt.Name(). Drops thetestingimport fromconfig.go. - Apply a similar refactor to
cmdparser/test.go, or move its helpers into a dedicatedcmdparsertestsubpackage.
Larger option:
- Move all cross-package test helpers into dedicated
*testsubpackages (e.g.internal/config/configtest,internal/cmdparser/cmdparsertest).
- Ngôn ngữ chính
- Go
- Star
- 595
- Fork
- 91
- Merge trung bình
- 9 giờ 35 phút
- Pull request đã merge (30 ngày)
- 1
Chuẩn bị môi trường
Chúng tôi chưa kiểm tra các tệp thiết lập môi trường của dự án này. Hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của microsoft/go-sqlcmd
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Fix CVEs in Version v1.10.0Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
microsoft/go-sqlcmd#733 · 7 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 55/100
Maintainer thường phản hồi trong vòng 1 ngày
-
":Help" command not workingĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của microsoft/go-sqlcmd
Issue tương tự
-
priority: low 🌱 type: enhancement 💅🏼
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 84/100
nebari-dev/llm-serving-pack#199 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
area/helm kind/bug priority/backlog triage/accepted
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
lexfrei/cloudflare-tunnel-gateway-controller#889 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug difficulty: beginner documentation good first issue help wanted localization
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
wavefnd/wave-platform#140 ·
-
compiler/runtime
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
golang/go#81797 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày