如何解决在 github 中运行工作流时出现错误
当我在 bash 或命令终端上运行我的单元测试时,它们都通过了,但是当我尝试使用 GitHub 工作流运行它时,它给了我一个错误,它说: 'mocha' 不被识别为内部或外部命令。
我不知道该怎么做才能让它工作。
我的包裹
{
"name": "api","version": "0.0.0","private": true,"scripts": {
"start": "node ./bin/www","test": "mocha --recursive --exit"
},"dependencies": {
"bcryptjs": "^2.4.3","cookie-parser": "~1.4.4","cors": "^2.8.5","debug": "~2.6.9","express": "~4.16.1","express-session": "^1.17.1","express-validator": "^5.3.1","http-errors": "~1.6.3","jade": "~1.11.0","mongoose": "^5.11.18","morgan": "~1.9.1","multer": "^1.4.2","passport": "^0.4.1","passport-local": "^1.0.0"
}
}
我的测试文件
const expect = require('chai').expect;
const request = require('supertest');
const app = require('../app');
describe('Register users 1 & 2',() => {
it('Test user 1 succesfully registered',(done) => {
request(app).post('/users/register')
.send({username: 'Tester1',password: 'tester'})
.then((res) => {
const body = res.body;
expect(body).to.contain.property('response');
done();
})
.catch((err) => done(err))
})
it('Test user 2 succesfully registered',(done) => {
request(app).post('/users/register')
.send({username: 'qwer',password: 'tester'})
.then((res) => {
const body = res.body;
expect(body).to.contain.property('response');
done();
})
.catch((err) => done(err))
})
})
describe('Login user 1',() => {
it('Test user 1 succesfully logged in',(done) => {
request(app).post('/login')
.send({username: 'Tester1',password: 'tester'})
.then((res) => {
const body = res.body;
expect(body).to.contain.property('_id');
expect(body).to.contain.property('username');
expect(body).to.contain.property('password');
done();
})
.catch((err) => done(err))
})
})
describe('Following user',() => {
it('User 1 login',password: 'tester'})
.then((res) => {
const body = res.body;
expect(body).to.contain.property('_id');
expect(body).to.contain.property('username');
expect(body).to.contain.property('password');
done();
})
.catch((err) => done(err))
request(app).post('/follow/qwer')
})
})
我在 github 工作流中遇到的错误
Run npm run test
> api@0.0.0 test D:\a\instantgram.github.io\instantgram.github.io\api
> mocha --recursive --exit
'mocha' is not recognized as an internal or external command,operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! api@0.0.0 test: `mocha --recursive --exit`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the api@0.0.0 test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\npm\cache\_logs\2021-03-18T20_50_41_019Z-debug.log
Error: Process completed with exit code 1.
解决方法
当我在 bash 或命令终端上运行我的单元测试时,它们都通过了,但是当我尝试使用 GitHub 工作流运行它时,它给了我一个错误,上面写着:“mocha”不被识别为内部或外部命令。
您需要将 mocha 添加到您的依赖项中,以便您的 github action 可以在执行测试之前安装它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。