乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Agent之Cover Agent:Cover Agent(用于提升自動化測試生成和代碼覆蓋率)的簡介、安裝和使用方法、案例應(yīng)用之詳細(xì)攻略

       處女座的程序猿 2024-06-19 發(fā)布于上海

      Agent之Cover Agent:Cover Agent(用于提升自動化測試生成和代碼覆蓋率)的簡介、安裝和使用方法、案例應(yīng)用之詳細(xì)攻略


      Cover Agent的簡介

      CodiumAI Cover-Agent:一款A(yù)I驅(qū)動的工具,用于自動化測試生成和代碼覆蓋率的提升!

      2024年5月9日,CodiumAI發(fā)布Cover Agent,它旨在通過自動生成合格的測試來提高代碼覆蓋率,以增強(qiáng)現(xiàn)有的測試套件。Cover-Agent?現(xiàn)在支持幾乎任何世界上的 LLM 模型,使用 LiteLLM 包。這個專注的項(xiàng)目利用生成式 AI 自動化并增強(qiáng)測試的生成(目前主要是單元測試),旨在簡化開發(fā)工作流程。Cover-Agent?可以通過終端運(yùn)行,并計(jì)劃集成到流行的 CI 平臺中。

      Cover-Agent是利用生成式AI自動化和提升生成測試(目前主要是單元測試)的專注項(xiàng)目,旨在簡化開發(fā)工作流程。它能通過命令行運(yùn)行,并計(jì)劃集成到流行的CI平臺中。Cover-Agent能通過Python包或獨(dú)立二進(jìn)制文件安裝和運(yùn)行。它支持多種編程語言,并計(jì)劃支持更豐富的測試場景。未來還將整合主流CI平臺,提高用戶體驗(yàn)。

      總之,Cover-Agent利用先進(jìn)的生成式AI為自動化單元測試生成量身定制的高質(zhì)量測試用例,旨在簡化軟件測試流程,提升代碼質(zhì)量。它的開源性質(zhì)也將為相關(guān)研究與應(yīng)用提供支持。

      1、Cover-Agent系統(tǒng)主要組成部分

      >> 測試運(yùn)行器(Test Runner):執(zhí)行命令或腳本來運(yùn)行測試套件并生成代碼覆蓋報告。

      >> 代碼覆蓋解析器(Coverage Parser):驗(yàn)證新增測試是否能增加代碼覆蓋率,從而確保新測試有助于提升整體測試質(zhì)量。

      >> 提示構(gòu)建器(Prompt Builder):從代碼庫中收集必要數(shù)據(jù),構(gòu)建傳遞給大語言模型(LLM)的提示。

      >> AI調(diào)用器(AI Caller):根據(jù)提示與LLM交互,由LLM基于提示生成測試用例。

      GitHub地址https://github.com/Codium-ai/Cover-Agent

      2、新聞和更新

      2024-05-26:Cover-Agent?現(xiàn)在支持幾乎任何世界上的 LLM 模型,使用 LiteLLM 包。

      注意,GPT-4 在代碼任務(wù)和遵循復(fù)雜指令方面幾乎優(yōu)于任何開源模型。然而,我們更新了后處理腳本,使其更加全面,并成功運(yùn)行了基準(zhǔn)腳本,例如使用 llama3-8B 和 llama3-70B 模型。

      2024-05-09:該存儲庫包含首個已知的 TestGen-LLM 實(shí)現(xiàn),在 Meta 的論文《使用大型語言模型自動改進(jìn)單元測試》中有所描述。

      3、CodiumAI

      CodiumAI 的使命是幫助忙碌的開發(fā)團(tuán)隊(duì)提高和維護(hù)代碼完整性。我們提供各種工具,包括我們的開源工具的“專業(yè)版”,這些工具旨在處理企業(yè)級代碼復(fù)雜性,并且支持多存儲庫代碼庫。

      Cover Agent安裝和使用方法

      1、安裝和使用

      要求

      在開始之前,請確保您擁有以下內(nèi)容:

      >> 環(huán)境變量中設(shè)置的 OPENAI_API_KEY,這是調(diào)用 OpenAI API 所需的。

      >> 代碼覆蓋工具:工具需要 Cobertura XML 代碼覆蓋報告才能正常運(yùn)行。

      例如,在 Python 中可以使用 pytest-cov。運(yùn)行 Pytest 時添加 --cov-report=xml 選項(xiàng)。

      注意:我們正在積極增加更多覆蓋類型,但請隨時打開 PR 并貢獻(xiàn)到 cover_agent/CoverageProcessor.py

      如果直接從存儲庫運(yùn)行,您還需要:

      系統(tǒng)上安裝的 Python。

      用于管理 Python 包依賴項(xiàng)的 Poetry。Poetry 的安裝說明可在 https:///docs/ 找到。

      獨(dú)立運(yùn)行

      Cover Agent 可以作為 Python Pip 包安裝或作為獨(dú)立可執(zhí)行文件運(yùn)行。

      Python Pip

      要直接通過 GitHub 安裝 Python Pip 包,請運(yùn)行以下命令:

      pip install git+https://github.com/Codium-ai/Cover-Agent.git
      二進(jìn)制文件

      二進(jìn)制文件可以在您的系統(tǒng)上未安裝任何 Python 環(huán)境的情況下運(yùn)行(例如在未包含 Python 的 Docker 容器中)。您可以通過導(dǎo)航到項(xiàng)目的發(fā)布頁面下載適用于您的系統(tǒng)的版本。

      存儲庫設(shè)置

      運(yùn)行以下命令以安裝所有依賴項(xiàng)并從源代碼運(yùn)行項(xiàng)目:

      poetry install

      運(yùn)行代碼

      下載可執(zhí)行文件或安裝 Pip 包后,您可以運(yùn)行 Cover Agent 以生成和驗(yàn)證單元測試。在命令行中使用以下命令執(zhí)行它:

      Cover-Agent
      --source-file-path "<path_to_source_file>"
      --test-file-path "<path_to_test_file>"
      --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>"

      您可以使用此存儲庫中的示例項(xiàng)目作為測試運(yùn)行此代碼。

      按照位于 templated_tests/python_fastapi/ 目錄中的 README.md 文件中的步驟操作,然后返回存儲庫根目錄,并運(yùn)行以下命令以向 python fastapi 示例添加測試:

      Cover-Agent
      --source-file-path "templated_tests/python_fastapi/app.py"
      --test-file-path "templated_tests/python_fastapi/test_app.py"
      --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 的示例,進(jìn)入 templated_tests/go_webservice 目錄,按照 README.md 設(shè)置項(xiàng)目。要處理覆蓋報告,您需要安裝 gocov 和 gocov-xml。運(yùn)行以下命令以安裝這些工具:

      go install github.com/axw/gocov/gocov@v1.1.0

      go install github.com/AlekSi/gocov-xml@v1.1.0

      然后運(yùn)行以下命令:

      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

      嘗試通過在此存儲庫的根目錄運(yùn)行以下命令向該項(xiàng)目添加更多測試:

      
      poetry run Cover-Agent
      --source-file-path "cover_agent/main.py"
      --test-file-path "tests/test_main.py"
      --code-coverage-report-path "coverage.xml"
      --test-command "poetry run pytest --junitxml=testLog.xml --cov=templated_tests --cov=cover_agent --cov-report=xml --cov-report=term --log-cli-level=INFO"
      --coverage-type "cobertura"
      --desired-coverage 70
      --max-iterations 1
      --model "gpt-4o"

      注意:如果您使用的是 Poetry,請使用 poetry run Cover-Agent?命令而不是 Cover-Agent?run 命令。

      輸出

      一些調(diào)試文件將本地輸出到存儲庫中(它們是 .gitignore 的一部分)

      generated_prompt.md:發(fā)送給 LLM 的完整提示

      run.log:轉(zhuǎn)儲到 stdout 的日志副本

      test_results.html:包含以下內(nèi)容的生成測試結(jié)果表:

      測試狀態(tài)

      失敗原因(如適用)

      退出代碼

      stderr

      stdout

      生成的測試

      使用其他 LLM

      此項(xiàng)目使用 LiteLLM 與 OpenAI 和其他托管 LLM 通信(支持至今超過 100 個 LLM)。要使用除 OpenAI 默認(rèn)之外的其他模型,您需要:

      根據(jù) LiteLLM 說明導(dǎo)出支持的 LLM 所需的任何環(huán)境變量。

      調(diào)用 Cover Agent 時使用 --model 選項(xiàng)調(diào)用模型名稱。

      例如(如 LiteLLM 快速入門指南中所述):

      export VERTEX_PROJECT="hardy-project"
      export VERTEX_LOCATION="us-west"
      
      Cover-Agent
      ...
      --model "vertex_ai/gemini-pro"

      3、開發(fā)

      本節(jié)討論此項(xiàng)目的開發(fā)。

      版本控制

      在合并到主分支之前,請確保手動增加存儲庫根目錄中 cover_agent/version.txt 中的版本號。

      運(yùn)行測試

      運(yùn)行 poetry install 命令設(shè)置開發(fā)環(huán)境,如上所述。

      注意:對于舊版本的 Poetry,您可能需要包含 --dev 選項(xiàng)以安裝開發(fā)依賴項(xiàng)。

      設(shè)置環(huán)境后,運(yùn)行以下命令:

      poetry run pytest --junitxml=testLog.xml --cov=templated_tests --cov=cover_agent --cov-report=xml --cov-report=term --log-cli-level=INFO

      這還將生成 .github/workflows/ci_pipeline.yml 中生成的所有日志和輸出報告。

      路線圖

      以下是計(jì)劃功能的路線圖及當(dāng)前實(shí)現(xiàn)狀態(tài):

      (1)、自動生成軟件項(xiàng)目的單元測試,利用先進(jìn)的 AI 模型確保全面的測試覆蓋率和質(zhì)量保證。(類似 Meta)

      能夠?yàn)椴煌幊陶Z言生成測試

      能夠處理多種測試場景

      為被測試代碼生成行為分析,并相應(yīng)生成測試

      檢查測試的不穩(wěn)定性,例如按 TestGen-LLM 建議運(yùn)行 5 次

      (2)、覆蓋更多的測試生成痛點(diǎn)

      生成專注于 PR 變更集的新測試

      在整個存儲庫/代碼庫上運(yùn)行,并嘗試增強(qiáng)所有現(xiàn)有測試套件

      (3)、改善可用性

      為 GitHub Actions、Jenkins、CircleCI、Travis CI 等平臺提供連接器

      集成到數(shù)據(jù)庫、API、OpenTelemetry 和其他數(shù)據(jù)源中,以提取相關(guān)的輸入/輸出進(jìn)行測試生成

      添加設(shè)置文件

      Cover Agent案例應(yīng)用

      正在更新中……

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多