Test a Cloud Function before deployment
This guide shows you how to test a Cloud Function in Google Cloud console before deploying it. This feature is available for Node.js and Python functions.
Prepare a function for testing
To prepare a function for testing:
Open the Functions Overview page in the Google Cloud console:
Make sure that the project for which you enabled Cloud Functions is selected.
Click Create Function to create a new Node.js or Python function, or select an existing Node.js or Python function and click Edit to edit it.
Click Next to advance to the code editing page:
Click Test Function to start the testing process.
When prompted, click Start testing to authorize use of the Cloud Shell Terminal.
Run the test
When you complete the preceding steps, the triggering event panel opens on the right, confirming that the function is ready to be tested. Click Run test:
This phase of the testing process includes the following components:
- Triggering event panel. The triggering event panel is pre-populated with a payload that matches the event trigger you specified on the configuration page. This is the input to your function.
- Cloud Shell output window. The Cloud Shell output window displays the HTTP status code and any response returned to the caller.
- Run test executes the test.
You can observe the output from the test in the Cloud Shell window:
Cloud Shell terminal
You can view logging output by your function in the Cloud Shell terminal at
the bottom of your screen. For example, you'll see source code packaging output
when you open the testing panel. When you run a test, you'll see your source
code changes and execution level output, including
console.log and errors.
If your test fails, the Cloud Shell terminal displays an error message to help you pinpoint the exact cause, for example:
[11:31:47 AM] - Provided module can't be loaded. Is there a syntax error in your code? Detailed stack trace: /workspace/index.js:11 : 'World'; ^ SyntaxError: Unexpected token ':' at Object.compileFunction (node:vm:360:18) at wrapSafe (node:internal/modules/cjs/loader:1048:15) at Module._compile (node:internal/modules/cjs/loader:1083:27) at Module._extensions..js (node:internal/modules/cjs/loader:1173:10) at Module.load (node:internal/modules/cjs/loader:997:32) at Module._load (node:internal/modules/cjs/loader:838:12) at Module.require (node:internal/modules/cjs/loader:1021:19) at require (node:internal/modules/cjs/helpers:103:18) at getUserFunction (/workspace/node_modules/@google-cloud/functions-framework/build/src/loader.js:98:30) at async main (/workspace/node_modules/@google-cloud/functions-framework/build/src/main.js:35:32) [11:31:47 AM] - Could not load the function, shutting down.
Once you're finished testing, you can deploy your function in the usual way by clicking Deploy.