Skip to main content
Glama
run_tests2.11 kB
#!/usr/bin/env sh set -eu # Runs all tests in the workspaces directory. command -v maestro >/dev/null 2>&1 || { echo "maestro is required" && exit 1; } [ "$(basename "$PWD")" = "e2e" ] || { echo "must be run from e2e directory" && exit 1; } ALL_PASS=true _h1() { printf "=>\n=> %s\n=>\n" "$1" } _h2() { printf "==> [%s] %s\n" "$1" "$2" } _h3() { printf "==> [%s] [%s] => %s\n" "$1" "$2" "$3" } platform="${1:-}" if [ "$platform" = "android" ]; then exclude_tags="ios,ai" elif [ "$platform" = "ios" ]; then exclude_tags="android,ai" else echo "usage: $0 <android|ios>" exit 1 fi mkfifo pipe trap 'rm -f pipe' EXIT export MAESTRO_EXAMPLE="test-value" # Relied upon in a test # Run passing tests for workspace_dir in ./workspaces/*; do WORKSPACE_PASS=true app_name="$(basename "$workspace_dir")" _h1 "run tests for app \"$app_name\" on platform \"$platform\"" ### ### Run passing tests ### _h2 "$app_name" "run passing tests" while IFS= read -r line; do _h3 "$app_name" "passing" "$line" done < pipe & maestro --verbose --platform "$platform" test --include-tags passing --exclude-tags "$exclude_tags" "$workspace_dir" 1>pipe 2>&1 || WORKSPACE_PASS=false if [ "$WORKSPACE_PASS" = "false" ]; then _h2 "$app_name" "FAIL! Expected all pass, but at least some failed instead" ALL_PASS=false fi ### ### Run failing tests ### # edge case: some workspaces have no failing flows case $(basename "$workspace_dir") in wikipedia|setOrientation) continue ;; esac WORKSPACE_PASS=true # Reset for failing flows _h2 "$app_name" "run failing tests" while IFS= read -r line; do _h3 "$app_name" "failing" "$line" done < pipe & maestro --verbose --platform "$platform" test --include-tags failing --exclude-tags "$exclude_tags" "$workspace_dir" 1>pipe 2>&1 && WORKSPACE_PASS=false if [ "$WORKSPACE_PASS" = "false" ]; then _h2 "$app_name" "FAIL! Expected all to fail, but at least some passed instead" ALL_PASS=false fi done if [ "$ALL_PASS" = "false" ]; then _h1 "FAILURE: some tests failed!" exit 1 else _h1 "SUCCESS: all tests passed!" fi

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mobile-dev-inc/Maestro'

If you have feedback or need assistance with the MCP directory API, please join our Discord server