microcks / microcks/microcks-cli
TestDeleteContext fails when cmd/testdata directory is missing
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 52
- Forks
- 68
- Merge medio
- 6 h 54 min
- PR fusionados (30 d)
- 10
Descripción
Describe the bug
While running the test suite with go test ./..., the TestDeleteContext test fails because it tries to write/read a config file at ./testdata/local.config. However, the cmd/testdata directory does not exist in a fresh clone, causing the test to fail with:
open ./testdata/local.config: no such file or directory
This makes the test dependent on a manually existing local directory instead of being fully self-contained.
Expected behavior
go test ./... should pass on a fresh clone without requiring the cmd/testdata directory to already exist. The test should create any temporary files or directories it needs during execution.
Actual behavior
The test suite fails in TestDeleteContext:
--- FAIL: TestDeleteContext (0.00s)
context_test.go:44:
Error: Received unexpected error:
open ./testdata/local.config: no such file or directory
How to Reproduce?
- Clone the repository fresh:
git clone https://github.com/microcks/microcks-cli.git - Change into the directory:
cd microcks-cli - Run the test suite:
go test ./... - Observe the failure in
cmd/context_test.goatTestDeleteContext.
Microcks version or git rev
No response
Install method (docker-compose, helm chart, operator, docker-desktop extension,...)
No response
Additional information
Root cause. cmd/context_test.go declares a hardcoded path:
const testConfigFilePath = "./testdata/local.config"
and then calls os.WriteFile(testConfigFilePath, ...). os.WriteFile does not create parent directories, and .gitignore excludes **/testdata/**, so the cmd/testdata/ directory does not exist on a clean clone.
Proposed fix. Use Go's t.TempDir() so the test creates an isolated, auto-cleaned temporary directory on every run:
testConfigFilePath := filepath.Join(t.TempDir(), "local.config")
This makes the test self-contained, removes the dependency on repository-local folders, and prevents state leakage between consecutive runs.
I would like to work on this issue if the maintainers agree with the proposed approach. I can send a small PR that updates the test to use t.TempDir().
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza en cmd/context_test.go, en TestDeleteContext, e inspecciona cómo se usa testConfigFilePath. Ejecuta go test ./... para reproducir el fallo causado por la ausencia de cmd/testdata y, después, verifica que el test use una ubicación temporal aislada y pase en un checkout nuevo sin directorios locales del repositorio.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- go
- Área
- cli, testing
- Tipo de issue
- Error
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Estado de actividad
- Tranquilo
- Claridad
- Bien especificado
- Aptitud para principiantes
- 84/100