Hey there! I am creating a CI/CD pipeline using Gitlab. I have the pipeline consuming AWS secrets from Gitlab environment variables, which allows me to successfully deploy a staging stack. However, when the job in the pipeline reaches sls test --stage staging it fails out:
$ serverless test --stage staging
Type Error ---------------------------------------------
TypeError: Cannot read property 'classes' of undefined
at module.exports.test (/usr/lib/node_modules/serverless/node_modules/@serverless/enterprise-plugin/lib/test/index.js:12:24)
at ServerlessEnterprisePlugin.<anonymous> (/usr/lib/node_modules/serverless/node_modules/@serverless/enterprise-plugin/lib/plugin.js:511:17)
at /usr/lib/node_modules/serverless/lib/classes/PluginManager.js:521:55
at tryCatcher (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
at Object.gotValue (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/reduce.js:168:18)
at Object.gotAccum (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/reduce.js:155:25)
at Object.tryCatcher (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:547:31)
at Promise._settlePromise (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:604:18)
at Promise._settlePromiseCtx (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/promise.js:641:10)
at _drainQueueStep (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:97:12)
at _drainQueue (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:86:9)
at Async._drainQueues (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:102:5)
at Immediate.Async.drainQueues (/usr/lib/node_modules/serverless/node_modules/bluebird/js/release/async.js:15:14)
at processImmediate (internal/timers.js:461:21)
For debugging logs, run again after setting the "SLS_DEBUG=*" environment variable.
Get Support --------------------------------------------
Docs: docs.serverless.com
Bugs: github.com/serverless/serverless/issues
Issues: forum.serverless.com
Your Environment Information ---------------------------
Operating System: linux
Node Version: 12.20.0
Framework Version: 2.13.0
Plugin Version: 4.1.2
SDK Version: 2.3.2
Components Version: 3.4.2
The relevant lines in the stack trace are:
if (!ctx.sls.enterpriseEnabled) {
throw new this.sls.classes.Error('Run "serverless" to configure your service for testing.');
}
I was able to configure the server using serverless to setup an account, and when developing locally, and this allowed me to run the tests in serverless.test.yml. However, this is not desired. I don’t particularly want this project attached to Serverless’ infrastructure.
Please let me know if there is any way that I can perform this task without logging into Serverless. I tried the following:
# .serverlessrc
{
"enterpriseDisabled": true
}
However this provided me with the same stack trace that I referenced above. Any help that can be provided would be most appreciated!
Thanks!