Гинкго в Кобертуру и Юнит - PullRequest
0 голосов
/ 11 декабря 2018

Я использую Shippable в качестве CI, и мой проект основан на Go 1.11.Все модульные тесты написаны в стиле BDD с использованием Ginkgo и Gomega.В моем тестовом конвейере у меня есть что-то вроде:

gocov test ./... | gocov-xml > shippable/codecoverage/coverage.xml
go test -v ./... | go-junit-report > shippable/testresults/junitresults.xml

Это создаст файл покрытия в формате Cobertura и отчет о модульных тестах в формате JUnit.

В моем проекте у нас есть несколько тестовлюкс.Я планирую использовать Ginkgo CLI для выполнения покрытия и модульного тестирования вместо gocov и go test.Что-то вроде:

ginkgo -r -cover -outputdir=./shippable/codecoverage/ -coverprofile=coverage.txt
ginkgo -r -focus="\[Unit\]" -outputdir=./shippable/testresults/ -coverprofile=unit.txt

Теперь проблема в том, что я не могу преобразовать файл cover.txt в эквивалентный XML-файл формата Cobertura (который потребуется для shippable) и файл unit.txt в эквивалентный XML-файл JUnit.

Я видел , как сгенерировать файл JUnit из набора тестов , но в моем проекте у нас есть несколько наборов тестов, что приведет к нескольким файлам JUnit, чего я не делаюхочу.

Есть идеи, как их конвертировать и использовать?

1 Ответ

0 голосов
/ 11 декабря 2018

Чтобы создать формат Cobertura:

Неважно, разобрался сам.

Создайте обложку, используя режим обложки, как установлено

ginkgo -r -cover -covermode=set -outputdir=shippable/codecoverage/ -coverprofile=coverage.out

Сейчаснам нужно удалить дубликаты записей mode: set

awk '!seen[$0]++' shippable/codecoverage/coverage.out > shippable/codecoverage/coverage-fix.out

Наконец, преобразовать в Cobertura

bash gocov convert shippable/codecoverage/coverage-fix.out | gocov-xml > shippable/codecoverage/coverage.xml

...