Enjinx
  • Enjinx
    • What is Enjinx ?
    • Setup and Installation
      • Install on VSCode
      • Install on JetBrains IDEs
      • Subscription Plans
      • Sign in
      • Extension Settings
      • Uninstall Enjinx
    • Enjinx Chat
      • Focus
        • Current File Focus
        • Git Diff Focus
      • Context
        • Add Context
        • Add image as Context
      • Commands
        • /ask
        • /changelog
        • /commit
        • /describe
        • /docstring
        • /enhance
        • /explain
        • /find-on-github
        • /generate-best-practices
        • /help
        • /improve
        • /issues
        • /quick-test
        • /recap
        • /review
        • /test-suite
      • Chat History
      • Model Selection
      • Company Codebase
    • Code Completion
    • Coding Agent
      • Tasks
      • Continuous Code Improvement
    • Test Generation
      • Using Test Generation
      • Behaviors
      • Test Suite
      • Configuration
      • Example Test
      • Context
      • Running Tests
    • Data Sharing
  • Enjinx cover
    • What is Enjinx Cover ?
    • Setup
      • GitHub Action
      • CLI
    • Feature Flags
    • Database Usage
    • Coverage Report
    • Examples
  • Alpha Codium
    • What is Alpha Codium?
    • Setup
    • Usage
      • Configuration
      • Solving Problems
      • Solving the entire dataset
      • Evaluation
    • Technical Q&A
    • Research Paper
    • Examples
Powered by GitBook
On this page
  1. Enjinx cover

Database Usage

PreviousFeature FlagsNextCoverage Report

Last updated 5 months ago

Requirements

Currently, only SQLite is supported. operates using a local .db file for data storage and retrieval, as opposed to a server-based database.

To view the tables, you'll need SQLite installed. However, to begin, you can simply create an empty .db file using the touch command. For example:

Copy

Copy

touch run_tests.db

Running with an external DB

You can run Cover Agent using the --log-db-path option. For example:

Copy

Copy

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 \
  --log-db-path "run_tests.db"

Cover Agent will create a table called unit_test_generation_attempts within the database.

Integration Tests

Run the integration test suite and provide the local .db file to each Docker container.

Copy

Copy

LOG_DB_PATH="<full_path_to_root_folder>/run_tests.db" tests_integration/test_all.sh

Observing the test data

View the test results using either an external database viewer or the basic SQLite command-line tool.

Copy

Copy

sqlite3 run_tests.db

After executing some tests, a table named unit_test_generation_attempts will be created.

Copy

Copy

sqlite> .tables
unit_test_generation_attempts

To get the definition of the table run:

Copy

Copy

sqlite> PRAGMA table_info(unit_test_generation_attempts);
0|id|INTEGER|1||1
1|run_time|DATETIME|0||0
2|status|VARCHAR|0||0
3|reason|TEXT|0||0
4|exit_code|INTEGER|0||0
5|stderr|TEXT|0||0
6|stdout|TEXT|0||0
7|test_code|TEXT|0||0
8|imports|TEXT|0||0

To display all test results run the query:

Copy

Copy

select * from unit_test_generation_attempts;

This query may be easier to view outside of the CLI.

You can also filter the results to show only failed tests, for example:

Copy

Copy

sqlite> select * from unit_test_generation_attempts where status = "FAIL";
SQLite