#!/usr/bin/env just --justfile set shell := ["bash", "-c"] export DATABASE_URL := "postgres://postgres@localhost/db" export CARGO_TERM_COLOR := "always" # export RUST_BACKTRACE := "1" @_default: just --list --unsorted # Start Martin server and a test database run *ARGS: start-db cargo run -- {{ARGS}} # Run PSQL utility against the test database psql *ARGS: start-db psql {{ARGS}} {{DATABASE_URL}} # Perform cargo clean to delete all build files clean: clean-test stop cargo clean # Delete test output files clean-test: rm -rf tests/output # Start a test database start-db: (docker-up "db") # Start a legacy test database start-legacy: (docker-up "db-legacy") # Start a specific test database, e.g. db or db-legacy @docker-up name: docker-compose up -d {{name}} alias _down := stop alias _stop-db := stop # Stop the test database stop: docker-compose down # Run benchmark tests bench: start-db cargo bench # Run all tests using a test database test: test-unit test-int # Run Rust unit and doc tests (cargo test) test-unit: start-db cargo test --all-targets cargo test --all-targets --all-features cargo test --doc # Run integration tests test-int: (test-integration "db") # Run integration tests using legacy database test-int-legacy: (test-integration "db-legacy") # Run integration tests with the given docker compose target @test-integration name: (docker-up name) clean-test #!/usr/bin/env sh tests/test.sh # echo "** Skipping comparison with the expected values - not yet stable" # if ( ! diff --brief --recursive --new-file tests/output tests/expected ); then # echo "** Expected output does not match actual output" # echo "** If this is expected, run 'just bless' to update expected output" # echo "** Note that this error is not fatal because we don't have a stable output yet" # fi # Run integration tests and save its output as the new expected output bless: start-db clean-test tests/test.sh rm -rf tests/expected mv tests/output tests/expected # Build martin docker image docker-build: docker build -t martin . # Build and run martin docker image docker-run *ARGS: docker run -it --rm --net host -e DATABASE_URL -v $PWD/tests:/tests martin {{ARGS}} # Do any git command, ensuring that the testing environment is set up. Accepts the same arguments as git. [no-exit-message] git *ARGS: start-db git {{ARGS}}