QA Wolf logo

QA Wolf

/

Star

2.8k

Run Tests on Render Deployment

In this tutorial, we'll set up our tests to run when Render creates a Preview Environment of our site. This helps ensure our critical workflows don't break when we make changes.

Note that QA Wolf does not currently support Render Pull Request Previews. This is because Render does not fully integrate with the GitHub deployments API.

If you have multiple services for each deployment, please reach out for help.

Create Deployment Trigger

First we'll create a trigger to run our tests on Render deployments. QA Wolf uses triggers to determine when to run your tests.

To manage your team's triggers, use the "Triggers" button in the sidebar of the dashboard.

Add trigger from dashboard

Click this button to open a popup with options to create a trigger.

Select the "Deployment" tab on the right, and choose Render as your deploy service. You can also optionally rename your trigger.

Create deploy trigger

Now we'll connect our GitHub repository (repo) to QA Wolf. Click the "Connect GitHub repository" button to get started.

Connect GitHub repository

A new tab will open and visit GitHub. You will be asked to choose the repo(s) you want QA Wolf to access.

Install GitHub App

Choose the repo(s) you want to test and click the green "Install" button. After the installation succeeds, the new tab will close.

Confirm the repo you want to test is now selected in the dropdown.

Choose GitHub repo

Provide Preview Environment URL

In order to know what URL to run your tests on, you must provide an example Preview Environment URL for your project. QA Wolf will use this example to construct the URL for future pull requests.

This is required because Render does not yet provide this information via the GitHub Deployments API.

Preview Environment URL

Choose Tags

You can choose to run all your tests, or only tests with specific tags.

Choose tags

Choose Environment

If you have created any environments, choose the one to use when your tests run.

Choose environment

Press the "Create trigger" button to save your new trigger. 🎉

Update Tests to Use Deployment URL

Because our Render preview URL isn't known in advance, QA Wolf passes it as an environment variable (process.env.URL) when a deployment succeeds.

We need to update our tests to use this environment variable when specified.

Replace the URL in your tests with process.env.URL. For example, let's say our test currently starts with:

const { context } = await launch();
const page = await context.newPage();
await page.goto("https://default.onrender.com/");

Let's update the page.goto call to go to process.env.URL if it exists, and our default URL otherwise:

const { context } = await launch();
const page = await context.newPage();
// go to process.env.URL if specified, and the default URL otherwise
await page.goto(process.env.URL || "https://default.onrender.com/");

See QA Wolf Results in GitHub

Now when you make a pull request on GitHub, your tests will run after your Render Preview Environment is deployed.

See QA Wolf results in GitHub

QA Wolf will comment on a pull request with the most recent test suite. As your tests run, the comment is updated to report the latest results.

GitHub pull request comment

View Run History

🎉 Congratulations - now your tests will run on Render deployments in 100% parallel!

You can see your test runs in the "Run history" page of the dashboard.

Run history