feat: add JUnit XML output format and --output-file flag for CI/CD test reporting
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 55/100
Direção de pesquisa
Comece em cmd/test.go e revise a interface Formatter de pkg/output de #371 antes de escolher os pontos de integração. Defina as estruturas JUnit em pkg/output usando encoding/xml do Go, ofereça suporte a --output-file para a saída do formatter e verifique se o comportamento padrão de stdout permanece inalterado, enquanto os arquivos JSON e JUnit contêm os resultados esperados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Context:
Maintainer @Harsh4902 raised in #301: "can we store this output at a particular location for further usage?" — this issue directly addresses that question.
CI/CD platforms natively consume JUnit XML for test reporting:
- GitHub Actions: renders test results in PR summaries via junit-reporter
- Jenkins: JUnit plugin reads XML natively, no extra config
- GitLab CI:
artifacts: reports: junit:picks it up automatically - CircleCI:
store_test_resultsuses JUnit XML
Currently microcks test only outputs to stdout. There is no way to :
- Write results to a file for artifact upload or downstream tooling
- Produce JUnit XML that CI dashboards can render natively
This forces teams to parse text output with fragile regex, defeating the purpose of structured CI integration.
Description :
Two additive features, cleanly separated :
--output-file=<path>flag
Write test results to a file instead of (or in addition to) stdout.
Enables GitHub Actions artifact uploads, local file caching, and script pipelines without output redirection hacks.
microcks test ... --output json --output-file results.json
microcks test ... --output junit --output-file results.xml
- junit output format
A new format value for the --output flag (building on #371's pkg/output Formatter interface) :
Non-breaking: both flags are opt-in. Default behavior (text to stdout) unchanged.
Builds on #371: reuses the pkg/output Formatter interface — JUnit is just another Formatter implementation.
Implementation ideas:
- Add --output-file= to cmd/test.go — open the file, pass an io.Writer to the formatter :
var out io.Writer = os.Stdout
if outputFile != "" {
f, err := os.Create(outputFile)
if err != nil { ... }
defer f.Close()
out = f
}
- Add JUnitFormatter to pkg/output/ implementing the Formatter interface from #371:
type JUnitFormatter struct{}
func (f *JUnitFormatter) Format(result *TestResult, w io.Writer) error {
// marshal to encoding/xml JUnit structs
}
- JUnit XML structs (stdlib encoding/xml — zero new dependencies) :
type JUnitTestSuites struct {
XMLName xml.Name xml:"testsuites"
Suites []JUnitTestSuite xml:"testsuite"
}
type JUnitTestSuite struct {
Name string xml:"name,attr"
Tests int xml:"tests,attr"
Failures int xml:"failures,attr"
Cases []JUnitTestCase xml:"testcase"
}
no new dependencies — uses only stdlib encoding/xml.
happy to implement once the pkg/output foundation from #371 lands.
- Linguagem predominante
- Go
- Estrelas
- 59
- Forks
- 74
- Merge médio
- 4d 8h
- PRs com merge (30d)
- 23
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microcks/microcks-cli
-
bug: microcks test get swallows test failure details and operation results in text output modeAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
microcks/microcks-cli#608 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
microcks/microcks-cli#606 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
microcks/microcks-cli#601 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
microcks/microcks-cli#598 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
bug: microcks login ignores the --config flag and always modifies default configTalvez já em andamento @aryarathoree assumiu há 3 dias. Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 88/100
microcks/microcks-cli#594 · 5 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de microcks/microcks-cli
Issues semelhantes
-
Headerless responses block while skipping duplicate status linesTalvez já em andamento @mynhe assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
projectdiscovery/rawhttp#554 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 80/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
lognorman20/monaco#7428 ·
-
docs(prompts): IF BLOCKED workflow-scope branch says to comment on the issue on jira/local trackersAbertaagent-butler-finding bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
jordansmall/spindrift#6238 ·
Mantenedores costumam responder em até 1 dia