{"id":18417385,"url":"https://github.com/stellar-deprecated/system-test","last_synced_at":"2026-05-14T08:04:52.122Z","repository":{"id":64269409,"uuid":"567137693","full_name":"stellar/system-test","owner":"stellar","description":"Home of the stellar/stellar-system-test docker image for e2e system testing","archived":false,"fork":false,"pushed_at":"2025-03-25T21:09:54.000Z","size":286,"stargazers_count":2,"open_issues_count":16,"forks_count":6,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-25T21:31:19.820Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stellar.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-17T06:31:34.000Z","updated_at":"2025-03-12T22:22:55.000Z","dependencies_parsed_at":"2024-05-01T14:45:47.962Z","dependency_job_id":"2fead609-7487-4a4e-a80b-2afb10f3b09c","html_url":"https://github.com/stellar/system-test","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsystem-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsystem-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsystem-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stellar%2Fsystem-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stellar","download_url":"https://codeload.github.com/stellar/system-test/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247653223,"owners_count":20973785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:09:14.989Z","updated_at":"2026-05-14T08:04:52.117Z","avatar_url":"https://github.com/stellar.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# System Test\n\n### Running system tests:\n\nIdentify the quickstart image you want to use as target for running tests. Quickstart contains the server stack of core, rpc:\n\n- Use a prebuilt system test image published as tags under\n  `dockerhub.io/stellar/quickstart`\n- Or build the system test docker image locally with specific versions of cli and stellar-js-sdk,\n  this will create a docker image named `stellar/system-test:dev`. All `GIT_REF` variables can refer to\n  either a fully qualified local path to checked out git repo, or a fully\n  qualified github remote repo url `https://github.com/repo#\u003cref\u003e`\n\n```\nmake\n     STELLAR_CLI_GIT_REF=? \\\n     RUST_TOOLCHAIN_VERSION=? \\\n     STELLAR_CLI_CRATE_VERSION=? \\\n     JS_STELLAR_SDK_NPM_VERSION=? \\\n     NODE_VERSION=? \\\n     build\n```\n\nall settings have defaults pre-set, and optionally be overriden, refer to the Makefile for the defaulted values.\n\n#### Optional Build Params\n\n```\n# cli will be compiled from this git ref\nSTELLAR_CLI_GIT_REF=https://github.com/stellar/stellar-cli.git#main\n\n# this will override STELLAR_CLI_GIT_REF, and install stellar cli from crates repo instead\nSTELLAR_CLI_CRATE_VERSION=0.4.0\n\n# this will override the default Node JS vm version used for running the JS code:\nNODE_VERSION=16.20.2\n\n# js sdk version can be set to a published npm version from https://www.npmjs.com/package/stellar-sdk\nJS_STELLAR_SDK_NPM_VERSION=latest\n# or it can be set to a github git ref of a js-stellar-sdk repo\nJS_STELLAR_SDK_NPM_VERSION=https://github.com/stellar/js-stellar-sdk.git#master\n\n# Image overrides.\n# If using these, the image ref should provide a manifiest version for same\n# platform arch as the build host is running on, i.e. linux/amd64 or linux/arm64.\n# Otherwise, build will fail if image is not available for matching host platform.\n#\n\n# this will skip building stellar-cli from STELLAR_CLI_GIT_REF and instead\n# will use the bin already compiled at /usr/local/cargo/bin/soroban in the existing docker image provided:\nSTELLAR_CLI_IMAGE=\u003cdocker registry\u003e/\u003cdocker image name\u003e:\u003cdocker tag\u003e\n```\n\n#### Required runtime params\n\nSet the target network to test. This just needs to be the RPC server of the network. It can be from a running quickstart instance or testnet or pubnet:\n  `--TargetNetworkRPCURL {http://\u003crpc_host:rpc_port\u003e/soroban/rpc}`\n\nNote - If you are running quickstart as a docker container on the same host machine, then specify the rpc url as `--TargetNetworkRPCURL http://host.docker.internal:8000/rpc` to use Docker's convention to reference host network. \n\n#### Optional runtime params\n\nSystem test will by default use the network settings for `local` network from quickstart. \nIf `TargetNetworkRPCURL` is pointed at any stellar network other than a `local` network instance provided from quickstart, then you'll need to provide the network specifics. \n`--TargetNetworkPassphrase \"{passphrase}\"`\n`--TargetNetworkTestAccountSecret \"{your test account key pair info}\"`\n`--TargetNetworkTestAccountPublic \"{your test account key pair info}\"`\n\nTo specify git version of the smart contract source code used in soroban test\nfixtures. `--SorobanExamplesGitHash {branch, tag, git commit hash}`\n`--SorobanExamplesRepoURL \"https://github.com/stellar/soroban-examples.git\"`\n\nTo specify which system test feature/scenarios to run, it is a regex of the\nfeature test name and a scenario defined within, each row in example data for a\nscenario outline is postfixed with '#01', '#02', examples:\n`--TestFilter \"^TestDappDevelop$/^DApp developer compiles, deploys and invokes a contract.*$\"`\nor\n`--TestFilter \"^TestDappDevelop$/^DApp developer compiles, deploys and invokes a contract#01$\"`\n\nSet verbose logging output `--VerboseOutput true` \n\n#### Running Tests\n\n- Run tests against a remote instance of rpc hosted on a quickstart configured for testnet. \n  The tests requires you provide a key pair of an account that is funded with Lumens on the target\n  network for the tests to use as source account on transactions it will submit\n  to target network:\n\n  ```\n  docker run --rm -t --name e2e_test stellar/system-test:\u003ctag\u003e \\\n  --VerboseOutput true \\\n  --TargetNetworkRPCURL https://\u003crpc host url\u003e \\\n  --TargetNetworkPassphrase \"Test SDF Network ; September 2015\" \\\n  --TargetNetworkTestAccountSecret \u003cyour test account key pair info\u003e \\\n  --TargetNetworkTestAccountPublic \u003cyour test account key pair info\u003e \\\n  --SorobanExamplesGitHash v22.0.1\n  ```\n\n#### Debug test failures\nUse `--VerboseOutput true` and may need to check the lops of the rpc server instance if you have access to those at same time.\n\nThe docker container will exit with error code when any pre-setup or\ntest fails to pass, you can enable DEBUG_MODE flag, and the container will stay\nrunning, prompting you for depressing enter key before shutting down, make sure you invoke\ndocker with `-it` so the prompt will reach your command line. While container is\nkept running, you can shell into it via `docker exec -it \u003ccontainer id or name\u003e`\nand manually re-run tests in container, check local outputs. \n\nThe docker run follows standard exit code conventions, so if all tests pass in\nthe container run, exit code from command line execution will be 0, otherwise,\nif any failures in container or tests, then exit code will be greater than 0.\n\n### Development mode and running tests directly from checked out system-test repo.\n\nThis approach allows to run the tests from source code directly on host as go\ntests, no docker image is used.\n\n#### Prerequisites:\n\n1.  go 1.18 or above - https://go.dev/doc/install\n2.  rust toolchain(cargo and rustc), install the version per testing\n    requirements or stable, - use rustup -\n    https://www.rust-lang.org/tools/install\n3.  `stellar` cli, compile or install via cargo crate a version of stellar cli\n    onto your machine and accessible from PATH.\n4.  run an instance of RPC locally by running quickstart on a local network such as `stellar/quickstart:latest`.\n    ```\n    docker run --rm -it -p 8000:8000 --name stellar stellar/quickstart:latest --local \n    ```\n5.  locally checkout stellar/system-test \n    `git clone https://github.com/stellar/system-test.git;cd system-test`\n\n#### Running tests locally as go programs\n\n```\nsystem-test $ SorobanExamplesGitHash=\"main\" \\\nSorobanExamplesRepoURL=\"https://github.com/stellar/soroban-examples.git\" \\\nTargetNetworkPassPhrase=\"Standalone Network ; February 2017\" \\\nTargetNetworkSecretKey=\"SC5O7VZUXDJ6JBDSZ74DSERXL7W3Y5LTOAMRF7RQRL3TAGAPS7LUVG3L\" \\\nTargetNetworkPublicKey=\"GBZXN7PIRZGNMHGA7MUUUF4GWPY5AYPV6LY4UV2GL6VJGIQRXFDNMADI\" \\\nTargetNetworkRPCURL=\"http://localhost:8000/rpc\" \\\nVerboseOutput=false \\\ngo test -v --run \"^TestDappDevelop$/^DApp developer compiles, deploys and invokes a contract.*$\" ./features/dapp_develop/...\n```\n\nThis follows standard go test conventions, so if all tests pass, exit code from\ncommand line execution will be 0, otherwise, if any tests fail, then exit code\nwill be greater than 0.\n\nThis example uses a feature/scenario filter also to limit which tests are run.\n\n- Tests will attempt to run `stellar` as the cli as provided from your operating\n  system PATH.\n\n- the verbose output of BDD scenerio results for tests is dependent on go's\n  testing verbose output rules, need to specify -v and a directory with single\n  package, if multiple packages detected on directory location, then go won't\n  print verbose output for each package, i.e. you wont see the BDD scenerio\n  summaries printed, just the standard one liner for summary of package\n  pass/fail status.\n\n#### Debugging tests\n\nA debug config [launch.json](.vscode/launch.json) is provided for example\nreference on how to run a test with the go/dlv debugger.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellar-deprecated%2Fsystem-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstellar-deprecated%2Fsystem-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstellar-deprecated%2Fsystem-test/lists"}