{"meta":{"title":"Configurando a cobertura de código para seu repositório","intro":"Use a cobertura de código integrada do Code Quality para encontrar código não testado em pull requests, sem precisar pagar por nem manter um serviço separado de terceiros.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/enterprise-cloud@latest/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/enterprise-cloud@latest/code-security/how-tos","title":"How-tos"},{"href":"/pt/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code","title":"Manter o código de qualidade"},{"href":"/pt/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/set-up-code-coverage","title":"Configurar a cobertura de código"}],"documentType":"article"},"body":"# Configurando a cobertura de código para seu repositório\n\nUse a cobertura de código integrada do Code Quality para encontrar código não testado em pull requests, sem precisar pagar por nem manter um serviço separado de terceiros.\n\nVocê pode configurar a cobertura de código para seu repositório de duas maneiras:\n\n* **Configuração automática:** Use o agente alimentado por IA para gerar um fluxo de trabalho automaticamente. Escolha essa opção se:\n  * Você deseja começar rapidamente sem escrever a configuração do YAML.\n  * Seu projeto usa estruturas de teste comuns e padrões de build.\n  * Você se sente à vontade para iterar sobre um fluxo de trabalho gerado por IA.\n* **Configuração manual:** Configure seu fluxo de trabalho de CI por conta própria. Escolha essa opção se:\n  * Você precisa de controle preciso sobre o processo de cobertura.\n  * Você tem requisitos complexos de CI (como registros privados ou etapas de build personalizadas).\n  * Você deseja entender exatamente como a cobertura está configurada.\n\n## Configuração automática\n\nVocê pode usar a opção de configuração automática para gerar um fluxo de trabalho funcional para cobertura de código sem redigir manualmente a configuração de CI. Um agente analisa seu repositório, identifica sua estrutura de teste e abre uma solicitação de pull com um fluxo de trabalho de cobertura pronto para revisão.\n\n> \\[!NOTE]\n> A instalação automática usa a IA para gerar o arquivo de fluxo de trabalho. Não há custo adicional para usar esse recurso.\n\n### Pré-requisitos para configuração automática\n\n* Code Quality está habilitado para seu repositório. Consulte [Habilitando o GitHub Code Quality](/pt/enterprise-cloud@latest/code-security/how-tos/maintain-quality-code/enable-code-quality).\n* Seu repositório já possui uma suíte de testes.\n\n### Gerar automaticamente um fluxo de trabalho de cobertura\n\n1. Em GitHub, acesse a página principal do repositório.\n2. No nome do repositório, clique em **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-gear\" aria-label=\"gear\" role=\"img\"><path d=\"M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z\"></path></svg> Settings**. Caso não consiga ver a guia \"Configurações\", selecione o menu suspenso **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-kebab-horizontal\" aria-label=\"More\" role=\"img\"><path d=\"M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z\"></path></svg>** , clique em **Configurações**.\n\n   ![Captura de tela de um cabeçalho de repositório que mostra as guias. A guia \"Configurações\" é realçada por um contorno laranja-escuro.](/assets/images/help/repository/repo-actions-settings.png)\n3. Na barra lateral, em \"Segurança\", clique **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-square\" aria-label=\"code review\" role=\"img\"><path d=\"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm1.75-.25a.25.25 0 0 0-.25.25v12.5c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25V1.75a.25.25 0 0 0-.25-.25Zm7.47 3.97a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L10.69 8 9.22 6.53a.75.75 0 0 1 0-1.06ZM6.78 6.53 5.31 8l1.47 1.47a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215l-2-2a.75.75 0 0 1 0-1.06l2-2a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042Z\"></path></svg> Qualidade do código** para exibir a página \"Qualidade do código\".\n4. Na seção \"Análise de cobertura de código\", clique na caixa suspensa **Configuração**.\n5. Na lista, selecione **Gerar fluxo de trabalho com IA**. Aguarde até que o agente analise seu repositório. O agente abre um pull request em rascunho e publica um checklist das etapas em que está trabalhando.\n6. Para examinar a solicitação de pull, clique **em Examinar solicitação de pull**.\n   Examine a solicitação de pull assim que o agente concluir seu trabalho. A descrição da solicitação de pull resume as alterações, incluindo atualizações de configuração de projeto, alterações de arquivo de fluxo de trabalho e configurações de saída de cobertura.\n7. Se o fluxo de trabalho for executado com êxito na CI e a cobertura for carregada corretamente, mescle a solicitação de pull.\n\n   Se o fluxo de trabalho precisar de ajustes, consulte [Configuração automática de cobertura de código](/pt/enterprise-cloud@latest/code-security/concepts/code-quality/automatic-code-coverage-setup) para obter diretrizes sobre os diferentes resultados e como iterar.\n\nPara obter mais informações sobre como o agente funciona e o que esperar, consulte [Configuração automática de cobertura de código](/pt/enterprise-cloud@latest/code-security/concepts/code-quality/automatic-code-coverage-setup).\n\n## Configuração manual\n\nA cobertura de código integrada permite acompanhar com que profundidade seus testes exercitam o código, sem precisar adicionar um serviço de terceiros ao seu conjunto de ferramentas nem ao orçamento. Nos procedimentos a seguir, você gerará um relatório de cobertura no formato Cobertura XML a partir do seu conjunto de testes, fará upload dele para GitHub e visualizará os resultados da cobertura em seus pull requests.\n\n### Pré-requisitos para configuração manual\n\n* Code Quality está habilitado para seu repositório.\n* Seu repositório possui uma suíte de testes executada em GitHub Actions.\n* Sua estrutura de teste pode produzir um relatório de cobertura no formato **Cobertura XML** .\n\n### Etapa 1: gerar um relatório de cobertura Cobertura XML\n\nConfigure seu framework de testes para gerar um relatório de cobertura no formato Cobertura XML. A cobertura de código funciona com qualquer linguagem de programação que possa produzir esse formato.\n\n1. Identifique a ferramenta de cobertura do seu idioma na tabela abaixo.\n2. Adicione o comando ou a configuração apropriada ao fluxo de trabalho de CI para que um arquivo XML do Cobertura seja gerado sempre que os testes forem executados.\n\n| Linguagem             | Estrutura/Ferramenta            | Como gerar Cobertura XML                                                          |\n| --------------------- | ------------------------------- | --------------------------------------------------------------------------------- |\n| Python                | `pytest` + `pytest-cov`         | `pytest --cov=. --cov-report=xml`                                                 |\n| Java                  | JaCoCo                          | Usar o script `cover2cover.py` ou o plug-in JaCoCo-to-Cobertura Gradle/Maven      |\n| JavaScript/TypeScript | Istambul/ `nyc`                 | `nyc report --reporter=cobertura`                                                 |\n| Ruby                  | SimpleCov                       | Adicionar `SimpleCov::Formatter::CoberturaFormatter`                              |\n| Go                    | `go test` + `gocover-cobertura` | `go test -coverprofile=cover.out && gocover-cobertura < cover.out > coverage.xml` |\n\n> \\[!TIP]\n> Se o seu framework não estiver listado acima, verifique na documentação dele se há suporte para saída no formato Cobertura. Muitas ferramentas têm suporte nativo a esse formato ou podem converter de outros formatos para o XML Cobertura.\n\n### Etapa 2: Carregar o relatório de cobertura\n\nDepois que seus testes gerarem um relatório Cobertura XML, faça upload dele para GitHub para que os resultados de cobertura apareçam nos pull requests.\n\n1. Abra o arquivo de fluxo de trabalho ci do repositório (por exemplo, `.github/workflows/ci.yml`).\n\n2. Adicione a seguinte etapa após a etapa que executa seus testes e gere o relatório de cobertura:\n\n   ```yaml copy\n   - name: Upload coverage report\n     if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository\n     uses: actions/upload-code-coverage@v1\n     with:\n       file: COVERAGE-FILE-PATH.xml\n       language: LANGUAGE\n       label: LABEL\n   ```\n\n3. Substitua os seguintes valores:\n   * **`COVERAGE-FILE-PATH.xml`**: o caminho para o relatório XML do Cobertura (por exemplo, `coverage.xml` ou `target/site/jacoco/cobertura.xml`).\n   * **`LANGUAGE`**: o idioma principal do código que está sendo coberto (por exemplo, `Python`, `Java`, `JavaScript`).\n   * **`LABEL`**: um rótulo para identificar esse relatório de cobertura (por exemplo, `code-coverage/pytest`).\n\n4. Confirme e envie por push a alteração do fluxo de trabalho.\n\n### Exemplo de fluxo de trabalho completo\n\nEste exemplo executa Python testes com `pytest-cov` e carrega o relatório de cobertura:\n\n```yaml annotate copy\n# This workflow runs your test suite, generates a Cobertura XML coverage report, and uploads it to GitHub. Once this workflow is committed, coverage results appear automatically on every pull request.\nname: Code Coverage\n\n# Run on pushes to the default branch (to establish the baseline) and on pull requests (to compare against it). Code Quality compares PR branch coverage to the default branch, so both triggers are needed.\non:\n  push:\n    branches: [main]\n  pull_request:\n    branches: [main]\n\n# The `code-quality: write` permission is required to upload coverage data. No other elevated permissions are needed.\npermissions:\n  contents: read\n  code-quality: write\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      # Check out the PR head commit (not the merge commit) so coverage line numbers map correctly to the diff.\n      - uses: actions/checkout@v6\n        with:\n          ref: ${{ github.event.pull_request.head.sha || github.sha }}\n\n      # Replace this step with whatever language setup your project uses (Node.js, Java, Go, etc.). The upload action works with any language that produces a Cobertura XML report.\n      - uses: actions/setup-python@v5\n        with:\n          python-version: \"3.x\"\n\n      - name: Install dependencies\n        run: |\n          python -m pip install --upgrade pip\n          pip install -r requirements.txt\n          pip install pytest pytest-cov\n\n      # Adapt this step for your test framework. The key requirement is producing a Cobertura XML file. For other languages, see the framework table earlier in this article.\n      - name: Run tests with coverage\n        run: pytest --cov=. --cov-report=xml\n\n      # This step replaces any third-party coverage upload (Codecov, Coveralls, etc.). After this runs, the `github-code-quality[bot]` bot posts a coverage summary directly on the pull request.\n      - name: Upload coverage report\n        if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository\n        uses: actions/upload-code-coverage@v1\n        with:\n          file: coverage.xml\n          language: Python\n          label: code-coverage/pytest\n```\n\n### Etapa 3: Exibir os resultados de cobertura em pull requests\n\n1. Abra uma solicitação de pull (ou envie por push para uma existente) que dispare o fluxo de trabalho configurado.\n2. Após a conclusão do fluxo de trabalho, procure um comentário de `github-code-quality[bot]` na pull request. O comentário inclui:\n   * O percentual de cobertura de linha agregada para o branch de solicitação de pull em comparação com o branch padrão.\n   * Um detalhamento por arquivo mostrando quais arquivos ganharam ou perderam a cobertura."}