새로운 모드 - 전체 리포를 스캔하고, 자동 테스트 파일을 식별하고, 각 테스트 파일의 자동 수집 컨텍스트를 자동으로 식별하고, 새로운 테스트로 테스트 스위트를 확장합니다. 자세한 내용은 여기를 참조하십시오.
커버 에이전트에 오신 것을 환영합니다. 이 집중된 프로젝트는 생성 AI를 사용하여 개발 워크 플로우를 간소화하기 위해 테스트 생성 (현재 주로 단위 테스트)을 자동화하고 향상시킵니다. Cover-Agent는 터미널을 통해 실행할 수 있으며 인기있는 CI 플랫폼에 통합 될 계획입니다.
우리는 커뮤니티를 협력하고 커버 에이전트의 기능을 확장하도록 초대하여 자동화 된 장치 테스트 생성 도메인에서 최첨단 솔루션으로 개발을 계속합니다. 또한 연구원 들이이 오픈 소스 도구를 활용하여 새로운 시험 세대 기술을 탐색하도록 영감을주고 싶습니다.
이 도구는 소프트웨어 프로젝트를위한 단위 테스트 생성을 자동화하도록 설계된 광범위한 유틸리티 제품군의 일부입니다. 고급 생성 AI 모델을 사용하여 테스트 프로세스를 단순화하고 신속하게하여 고품질 소프트웨어 개발을 보장하는 것을 목표로합니다. 시스템은 여러 구성 요소로 구성됩니다.
시작하기 전에 다음이 있는지 확인하십시오.
OPENAI_API_KEY 환경 변수에서 OpenAI API를 호출해야합니다.pytest-cov 사용할 수 있습니다. pytest를 실행할 때 --cov-report=xml 옵션을 추가하십시오.cover_agent/CoverageProcessor.py 에 기여하십시오.저장소에서 직접 실행되면 다음과 같은 것도 필요합니다.
커버 에이전트는 Python PIP 패키지로 설치하거나 독립형 실행 파일로 실행할 수 있습니다.
Github를 통해 직접 Python Pip 패키지를 설치하려면 다음 명령을 실행하십시오.
pip install git+https://github.com/Codium-ai/cover-agent.git이진은 시스템에 파이썬 환경을 설치하지 않고도 실행할 수 있습니다 (예 : 파이썬이 포함되지 않은 Docker 컨테이너 내에). 프로젝트 릴리스 페이지로 이동하여 시스템 릴리스를 다운로드 할 수 있습니다.
다음 명령을 실행하여 모든 종속성을 설치하고 소스에서 프로젝트를 실행하십시오.
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> "아래 예제 코드를 사용하여 표지 에이전트를 시험해 볼 수 있습니다. (usage_examples 파일은 커버 에이전트를 사용하는 방법에 대한보다 정교한 예를 제공합니다).
templated_tests/python_fastapi/ 디렉토리에있는 readme.md 파일의 단계를 따라 환경을 설정 한 다음 리포지토리의 루트로 돌아가서 다음 명령을 실행하여 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 : stdout 에 버려진 로거 사본test_results.html : 생성 된 각 테스트에 대해 다음을 포함하는 결과 테이블 :stderrstdout 환경 변수 WANDB_API_KEY 설정하면 프롬프트, 응답 및 추가 정보가 가중치 및 편견에 기록됩니다.
이 프로젝트는 Litellm을 사용하여 OpenAI 및 기타 호스팅 된 LLM (현재까지 100 개 이상의 LLM 지원)과 통신합니다. OpenAI 기본값 이외의 다른 모델을 사용하려면 다음을 수행해야합니다.
--model 모델 옵션을 사용하여 모델 이름을 호출하십시오.예를 들어 (Litellm Quick Start Guide에서 볼 수 있듯이) :
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"버전을 포함한 다양한 도구를 제공합니다.
커버 에이전트 인 Qodo Cover의 프로 버전을 사용해보십시오!