Mode Baru - Pindai seluruh repo, Auto Identifikasi file uji, kumpulkan konteks otomatis untuk setiap file uji, dan perluas suite tes dengan tes baru. Lihat detail lebih lanjut di sini.
Selamat datang di Cover-Agent. Proyek terfokus ini menggunakan AI generatif untuk mengotomatisasi dan meningkatkan generasi tes (saat ini sebagian besar tes unit), yang bertujuan untuk merampingkan alur kerja pengembangan. Cover-agent dapat berjalan melalui terminal, dan direncanakan untuk diintegrasikan ke dalam platform CI populer.
Kami mengundang masyarakat untuk berkolaborasi dan membantu memperluas kemampuan agen penutup, melanjutkan pengembangannya sebagai solusi mutakhir dalam domain generasi uji unit otomatis. Kami juga ingin menginspirasi para peneliti untuk memanfaatkan alat sumber terbuka ini untuk mengeksplorasi teknik generasi tes baru.
Alat ini adalah bagian dari serangkaian utilitas yang lebih luas yang dirancang untuk mengotomatiskan pembuatan tes unit untuk proyek perangkat lunak. Memanfaatkan model AI generatif canggih, bertujuan untuk menyederhanakan dan mempercepat proses pengujian, memastikan pengembangan perangkat lunak berkualitas tinggi. Sistem ini terdiri dari beberapa komponen:
Sebelum Anda mulai, pastikan Anda memiliki yang berikut:
OPENAI_API_KEY diatur dalam variabel lingkungan Anda, yang diperlukan untuk memanggil API OpenAI.pytest-cov . Tambahkan opsi --cov-report=xml saat menjalankan pytest.cover_agent/CoverageProcessor.pyJika berjalan langsung dari repositori, Anda juga akan membutuhkan:
Agen penutup dapat diinstal sebagai paket Python Pip atau dijalankan sebagai Executable Standalone.
Untuk menginstal paket Python Pip langsung melalui GitHub jalankan perintah berikut:
pip install git+https://github.com/Codium-ai/cover-agent.gitBiner dapat dijalankan tanpa lingkungan Python yang dipasang pada sistem Anda (misalnya dalam wadah Docker yang tidak mengandung ular piton). Anda dapat mengunduh rilis untuk sistem Anda dengan menavigasi ke halaman rilis proyek.
Jalankan perintah berikut untuk menginstal semua dependensi dan jalankan proyek dari sumber:
poetry installSetelah mengunduh yang dapat dieksekusi atau menginstal paket PIP, Anda dapat menjalankan agen penutup untuk menghasilkan dan memvalidasi tes unit. Jalankan dari baris perintah dengan menggunakan perintah berikut:
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> "Anda dapat menggunakan kode contoh di bawah ini untuk mencoba agen penutup. (Perhatikan bahwa file usage_examples memberikan contoh yang lebih rumit tentang cara menggunakan agen penutup)
Ikuti langkah -langkah dalam file readme.md yang terletak di direktori templated_tests/python_fastapi/ untuk mengatur lingkungan, kemudian kembali ke akar repositori, dan jalankan perintah berikut untuk menambahkan tes ke contoh python fastapi :
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 Sebagai contoh menggunakan cd GO ke templated_tests/go_webservice , atur proyek mengikuti README.md . Untuk bekerja dengan pelaporan cakupan, Anda perlu menginstal gocov dan gocov-xml . Jalankan perintah berikut untuk menginstal alat ini:
go install github.com/axw/gocov/[email protected]
go install github.com/AlekSi/[email protected]dan kemudian jalankan perintah berikut:
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 Sebagai contoh menggunakan Java cd ke templated_tests/java_gradle , atur proyek mengikuti readme.md. Untuk bekerja dengan pelaporan cakupan Jacoco, ikuti bagian persyaratan readme.md: dan kemudian jalankan perintah berikut:
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 Beberapa file debug akan dikeluarkan secara lokal di dalam repositori (yang merupakan bagian dari .gitignore )
run.log : salinan logger yang dibuang ke stdout Andatest_results.html : Tabel hasil yang berisi berikut untuk setiap tes yang dihasilkan:stderrstdout Jika Anda menetapkan variabel lingkungan WANDB_API_KEY , petunjuk, tanggapan, dan informasi tambahan akan dicatat ke bobot dan bias.
Proyek ini menggunakan Litellm untuk berkomunikasi dengan Openai dan LLMS yang di -host lainnya (mendukung 100+ LLM hingga saat ini). Untuk menggunakan model yang berbeda selain default OpenAI yang Anda perlukan:
--model saat memanggil agen penutup.Misalnya (seperti yang ditemukan dalam panduan start cepat litellm):
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> " Lihat pengembangan untuk informasi lebih lanjut tentang cara berkontribusi pada proyek ini.
Di bawah ini adalah peta jalan fitur yang direncanakan, dengan status implementasi saat ini:
Misi Qodoai adalah untuk memungkinkan tim dev yang sibuk meningkatkan dan mempertahankan integritas kode mereka. Kami menawarkan berbagai alat, termasuk versi "Pro" dari alat open-source kami, yang dimaksudkan untuk menangani kompleksitas kode tingkat perusahaan dan merupakan basis kode multi-repo yang sadar.
Cobalah versi Pro dari Agen Sampul, sampul Qodo!