【发布时间】:2021-06-16 09:30:10
【问题描述】:
当我在 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', (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))
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.
【问题讨论】:
-
你的依赖项中没有 mocha
-
我已经安装了 Mocha,但它没有显示在我的依赖项中。
-
尝试手动添加
标签: javascript unit-testing mocha.js chai github-actions