Production code imports `testing` package (`internal/config/config.go`, `internal/cmdparser/test.go`)
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- go
- Ambito
- testing-qa
Direzione di ricerca
Inizia leggendo internal/config/config.go e internal/cmdparser/test.go, quindi esamina i chiamanti cross-package dei relativi helper di test. Esegui il refactoring degli helper in modo che i file compilati per la produzione non importino più il package testing di Go, scegliendo tra input basati su stringhe e sottopackage di test dedicati. Il lavoro è completato quando quegli import sono stati rimossi e i test esistenti continuano a superare l'esecuzione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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).
- Lingua principale
- Go
- Stelle
- 595
- Fork
- 91
- Merge medio
- 9h 35m
- PR unite (30g)
- 1
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/go-sqlcmd
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Fix CVEs in Version v1.10.0 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
":Help" command not working Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 76/100
Tutte le issue di microsoft/go-sqlcmd
Issue simili
-
bug github_actions
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
registrystack/registry-stack#1393 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
JakeChampion/lang#10213 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
oasisprotocol/oasis-sdk#2523 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100