Neuer Modus - Scannen Sie ein ganzes Repo, identifizieren Sie automatisch die Testdateien, sammeln Sie den Kontext für jede Testdatei automatisch und erweitern Sie die Testsuite mit neuen Tests. Weitere Informationen finden Sie hier.
Willkommen bei Cover-Agent. Dieses fokussierte Projekt verwendet generative KI, um die Erzeugung von Tests (derzeit hauptsächlich Unit -Tests) zu automatisieren und zu verbessern, um die Entwicklungsworkflows zu optimieren. Cover-Agent kann über ein Terminal ausgeführt werden und soll in beliebte CI-Plattformen integriert werden.
Wir laden die Community ein, zusammenzuarbeiten und die Fähigkeiten des Deckungsagenten zu erweitern und ihre Entwicklung als hochmoderne Lösung im Bereich der automatisierten Domäne für automatisierte Unit-Tests fortzusetzen. Wir möchten auch Forscher dazu inspirieren, dieses Open-Source-Tool zu nutzen, um neue Techniken der Testgenerstellung zu untersuchen.
Dieses Tool ist Teil einer breiteren Suite von Versorgungsunternehmen, mit denen die Erstellung von Unit -Tests für Softwareprojekte automatisiert werden soll. Mithilfe fortschrittlicher generativer KI-Modelle soll der Testprozess vereinfacht und beschleunigt werden, um eine qualitativ hochwertige Softwareentwicklung sicherzustellen. Das System umfasst mehrere Komponenten:
Stellen Sie vor Beginn sicher, dass Sie Folgendes haben:
OPENAI_API_KEY in Ihren Umgebungsvariablen eingestellt, was für die Aufrufen der OpenAI -API erforderlich ist.pytest-cov verwenden. Fügen Sie die Option --cov-report=xml beim Ausführen von PyTest hinzu.cover_agent/CoverageProcessor.py beitragen.Wenn Sie direkt aus dem Repository ausgeführt werden, benötigen Sie auch:
Der Cover -Agent kann als Python -PIP -Paket installiert oder als eigenständige ausführbare Datei ausgeführt werden.
So installieren Sie das Python -PIP -Paket direkt über GitHub den folgenden Befehl aus:
pip install git+https://github.com/Codium-ai/cover-agent.gitDie Binärdatei kann ohne in Ihrem System installierte Python -Umgebung ausgeführt werden (z. B. in einem Docker -Container, der keine Python enthält). Sie können die Version für Ihr System herunterladen, indem Sie zur Release -Seite des Projekts navigieren.
Führen Sie den folgenden Befehl aus, um alle Abhängigkeiten zu installieren und das Projekt aus Quelle auszuführen:
poetry installNach dem Herunterladen der ausführbaren Datei oder der Installation des PIP -Pakets können Sie den Cover -Agenten ausführen, um Unit -Tests zu generieren und zu validieren. Führen Sie es aus der Befehlszeile aus, indem Sie den folgenden Befehl verwenden:
cover-agent
--source-file-path " <path_to_source_file> "
--test-file-path " <path_to_test_file> "
--project-root " <path_to_project_root> "
--code-coverage-report-path " <path_to_coverage_report> "
--test-command " <test_command_to_run> "
--test-command-dir " <directory_to_run_test_command> "
--coverage-type " <type_of_coverage_report> "
--desired-coverage < desired_coverage_between_0_and_ 100>
--max-iterations < max_number_of_llm_iterations >
--included-files " <optional_list_of_files_to_include> "Sie können den folgenden Beispielcode verwenden, um den Cover -Agenten auszuprobieren. (Beachten Sie, dass die Datei useage_examples aufwändige Beispiele für die Verwendung des Deckungsagenten enthält.)
Befolgen Sie die Schritte in der Datei readme.md in der templated_tests/python_fastapi/ verzeichnis, um eine Umgebung einzurichten, und kehren Sie dann zum Stammvermögen des Repositorys zurück und führen Sie den folgenden Befehl aus, um dem Python Fastapi -Beispiel Tests hinzuzufügen:
cover-agent
--source-file-path " templated_tests/python_fastapi/app.py "
--test-file-path " templated_tests/python_fastapi/test_app.py "
--project-root " templated_tests/python_fastapi "
--code-coverage-report-path " templated_tests/python_fastapi/coverage.xml "
--test-command " pytest --cov=. --cov-report=xml --cov-report=term "
--test-command-dir " templated_tests/python_fastapi "
--coverage-type " cobertura "
--desired-coverage 70
--max-iterations 10 Ein Beispiel für ein Beispiel für GO cd in templated_tests/go_webservice , richten Sie das Projekt nach der README.md ein. Um mit der Berichterstattung über die Berichterstattung zu arbeiten, müssen Sie gocov und gocov-xml installieren. Führen Sie die folgenden Befehle aus, um diese Tools zu installieren:
go install github.com/axw/gocov/[email protected]
go install github.com/AlekSi/[email protected]und dann den folgenden Befehl ausführen:
cover-agent
--source-file-path " app.go "
--test-file-path " app_test.go "
--code-coverage-report-path " coverage.xml "
--test-command " go test -coverprofile=coverage.out && gocov convert coverage.out | gocov-xml > coverage.xml "
--test-command-dir $( pwd )
--coverage-type " cobertura "
--desired-coverage 70
--max-iterations 1 Ein Beispiel für ein Beispiel für die Java cd in templated_tests/java_gradle , richten Sie das Projekt nach dem Readme.md ein. Um mit der Berichterstattung über die Berichterstattung über Jacoco zu arbeiten, folgen Sie dem Abschnitt "Readme.MD": und führen Sie dann den folgenden Befehl aus:
cover-agent
--source-file-path= " src/main/java/com/davidparry/cover/SimpleMathOperations.java "
--test-file-path= " src/test/groovy/com/davidparry/cover/SimpleMathOperationsSpec.groovy "
--code-coverage-report-path= " build/reports/jacoco/test/jacocoTestReport.csv "
--test-command= " ./gradlew clean test jacocoTestReport "
--test-command-dir= $( pwd )
--coverage-type= " jacoco "
--desired-coverage=70
--max-iterations=1 Einige Debug -Dateien werden lokal im Repository ausgegeben (die Teil des .gitignore sind)
run.log : Eine Kopie des Protokolls, die in Ihren stdout abgeladen wirdtest_results.html : Eine Ergebnistabelle, die für jeden generierten Test Folgendes enthält:stderrstdout Wenn Sie eine Umgebungsvariable WANDB_API_KEY festlegen, werden die Eingabeaufforderungen, Antworten und zusätzliche Informationen an Gewichten und Vorurteilen protokolliert.
In diesem Projekt werden LitellM verwendet, um mit OpenAI und anderen gehosteten LLMs (bisher 100 LLMs) zu kommunizieren. Um ein anderes Modell als die OpenAI -Standardeinstellung zu verwenden, müssen Sie:
--model auf, wenn Sie Deckagenten aufrufen.Zum Beispiel (wie im Litellm Quick Start Guide gefunden):
export VERTEX_PROJECT= " hardy-project "
export VERTEX_LOCATION= " us-west "
cover-agent
...
--model " vertex_ai/gemini-pro " export OPENAI_API_KEY= " <your api key> " # If <your-api-base> requires an API KEY, set this value.
cover-agent
...
--model " openai/<your model name> "
--api-base " <your-api-base> " export AZURE_API_BASE= " <your api base> " # azure api base
export AZURE_API_VERSION= " <your api version> " # azure api version (optional)
export AZURE_API_KEY= " <your api key> " # azure api key
cover-agent
...
--model " azure/<your deployment name> " Weitere Informationen zum Beitrag zu diesem Projekt finden Sie in der Entwicklung.
Im Folgenden finden Sie die Roadmap der geplanten Merkmale mit dem aktuellen Implementierungsstatus:
Die Mission von Qodoai ist es, vielbeschäftigte Entwicklerteams zu ermöglichen, ihre Codeintegrität zu erhöhen und aufrechtzuerhalten. Wir bieten verschiedene Tools an, darunter "Pro" -Versionen unserer Open-Source-Tools, die die Codekomplexität auf Unternehmensebene verarbeiten sollen und Multi-Repo-Codebasis beachten.
Probieren Sie die Pro -Version von Cover Agent, Qodo Cover!