Testing code suggestions generated by the Amazon Q '/dev' command - Amazon Q Developer

Testing code suggestions generated by the Amazon Q '/dev' command

By default, when you use the /dev command, Amazon Q does not automatically test the code that it presents to you in the chat. You need to save the code and then test it separately. Amazon Q can’t test its code because it lacks an environment with the tools necessary to complete the work.

To enable Amazon Q to test its code, you must allow it to launch a dev environment by providing it with a devfile.

Note

For more information about the /dev command and the Amazon Q Developer Agent for software development, see Developing features with Amazon Q Developer.

What is a dev environment?

A dev environment is a Docker container in which Amazon Q can test its code before presenting it to you in the chat. The container includes the preinstalled tools, languages, and frameworks necessary to test the code.

Amazon Q launches the Docker container in a sandbox, meaning the container is isolated from AWS services to protect them from problematic code that Amazon Q might generate.

What is a devfile?

A devfile is a YAML file that complies with the devfile specification, which is an open standard defining containerized development environments, or dev environments for short.

A devfile describes:

  • The name and location of Docker container image to be used as the dev environment.

  • The commands to run automatically when the dev environment is launched.

A devfile can contain other types of information, but the two mentioned previously are the ones relevant to Amazon Q.

You can provide your own devfile, or you can let Amazon Q generate one for you.

How it works

Whenever you enter the /dev command into the Amazon Q chat panel, Amazon Q looks for a devfile in the root of your project.

If a devfile exists, Amazon Q:

  1. Launches a dev environment in a sandbox, in AWS.

  2. Generates a code suggestion (but doesn't present it to you yet).

  3. Builds and tests the suggestion in the dev environment using the instructions in the devfile.

  4. Iterates on the suggestion if the tests aren’t passing. Amazon Q conducts three iterations, and this is not configurable.

  5. Presents the tested code in the chat window.

  6. Terminates the dev environment.

If a devfile doesn’t exist, Amazon Q asks you whether you want to generate one. If you say yes, Amazon Q generates a devfile based on the context of your project. For more information about what this devfile might look like, see Example devfiles in Amazon Q Developer. After generating the devfile, Amazon Q does not start using it. You’ll need to enter another /dev command to invoke the devfile.

Sandbox specifications

The sandbox in which a dev environment is launched has 2 vCPUs and 4 GB of memory. The CPU and memory are not configurable.

Amazon VPC support

Amazon Q doesn't support running dev environments within your Amazon Virtual Private Cloud (Amazon VPC). For more information about Amazon VPC, see What is Amazon VPC? in the Amazon Virtual Private Cloud User Guide.