Новый режим - сканируйте весь репо, автоматически идентифицируйте тестовые файлы, контекст автоматического сбора для каждого тестового файла и расширяйте тестовый набор с помощью новых тестов. Смотрите более подробную информацию здесь.
Добро пожаловать на обложку. Этот фокусированный проект использует генеративный ИИ для автоматизации и улучшения генерации тестов (в настоящее время в основном модульных тестов), направленная на то, чтобы оптимизировать рабочие процессы разработки. Cover-Agent может работать через терминал и планируется интегрироваться в популярные платформы CI.
Мы приглашаем сообщество сотрудничать и помочь расширить возможности Acter Agent, продолжая его разработку в качестве передового решения в домене генерации автоматического модульного тестирования. Мы также хотим вдохновить исследователей использовать этот инструмент с открытым исходным кодом для изучения новых методов тестирования.
Этот инструмент является частью более широкого набора коммунальных услуг, предназначенных для автоматизации создания модульных тестов для программных проектов. Используя передовые генеративные модели ИИ, он направлен на упрощение и ускорение процесса тестирования, обеспечивая высококачественную разработку программного обеспечения. Система состоит из нескольких компонентов:
Прежде чем начать, убедитесь, что у вас есть следующее:
OPENAI_API_KEY установил в вашей среде переменные, что требуется для вызова API OpenAI.pytest-cov . Добавьте опцию --cov-report=xml при запуске Pytest.cover_agent/CoverageProcessor.pyЕсли вам также понадобится работать непосредственно из репозитория:
Агент крышки может быть установлен в виде пакета Python PIP или запускаться в качестве автономного исполняемого файла.
Чтобы установить пакет Python PIP напрямую через GitHub. Запустите следующую команду:
pip install git+https://github.com/Codium-ai/cover-agent.gitДвоичный файл может быть запущен без какой -либо среды Python, установленной в вашей системе (например, в контейнере Docker, в котором не содержатся Python). Вы можете скачать релиз для вашей системы, перейдя на страницу выпуска проекта.
Запустите следующую команду, чтобы установить все зависимости и запустить проект из Source:
poetry installПосле загрузки исполняемого или установки пакета PIP вы можете запустить агент обложки для генерации и проверки модульных тестов. Выполнить его из командной строки, используя следующую команду:
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> "Вы можете использовать пример кода ниже, чтобы попробовать агент Cover. (Обратите внимание, что файл usage_examples содержит более сложные примеры того, как использовать агент с покрытием)
Следуйте шагам в файле readme.md, расположенном в каталоге templated_tests/python_fastapi/ Directory для настройки среды, затем вернитесь в корень репозитория и запустите следующую команду, чтобы добавить тесты в пример 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 Для примера с использованием Go cd в templated_tests/go_webservice настройте проект после README.md . Чтобы работать с отчетностью о покрытии, вам необходимо установить gocov и gocov-xml . Запустите следующие команды для установки этих инструментов:
go install github.com/axw/gocov/[email protected]
go install github.com/AlekSi/[email protected]а затем запустите следующую команду:
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 Для примера с использованием Java cd в templated_tests/java_gradle настройте проект после readme.md. Чтобы работать с отчетностью Jacoco, следуйте разделу требований readme.md: и затем запустите следующую команду:
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 Несколько файлов отладки будут выведены локально в репозитории (которые являются частью .gitignore )
run.log : копия регистратора, который сбрасывается в ваш stdouttest_results.html : таблица результатов, которая содержит следующее для каждого сгенерированного теста:stderrstdout Если вы установите переменную среды WANDB_API_KEY , подсказки, ответы и дополнительная информация будут зарегистрированы в весах и смещениях.
Этот проект использует Litellm для связи с OpenAI и другими размещенными LLMS (поддерживая 100+ LLM на сегодняшний день). Чтобы использовать другую модель, кроме по умолчанию OpenAI, вам нужно:
--model при вызове агента Cover.Например (как найдено в руководстве быстрого начала 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> " Смотрите разработку для получения дополнительной информации о том, как внести свой вклад в этот проект.
Ниже приведена дорожная карта запланированных функций, с текущим статусом реализации:
Миссия Qodoai состоит в том, чтобы позволить занятым командам разработчиков увеличить и поддерживать целостность кода. Мы предлагаем различные инструменты, в том числе «Pro» версии наших инструментов с открытым исходным кодом, которые предназначены для обработки сложности кода на уровне предприятия и осведомлены о многорепо-кодовой базе.
Попробуйте профессиональную версию Agage Agent, Codo Cover!