第二次Mocha测试未运行

问题描述

我已经在Windows操作系统中设置了带有一些测试的Express API,第一个测试在wrongo/test/app_test.js内部成功运行:

const assert = require('assert');
const request = require('supertest');
const app = require('../app');

describe('the express app',() => {
  it('handles a GET request to /api',done => {
   request(app).get('/api').end((err,response) => {
     assert(response.body.how === 'dee');
     done();
   });
  });
});

我后来在wrongo/test/controllers/users_controller_test.js开发了另一项测试:

const assert = require('assert');
const request = require('supertest');
const app = require('../../app');

describe('Users controller',() => {
  it('Post to /api/users creates a new user',done => {
   request(app).post('/api/users').send({ email: 'test@test.com' }).end(() => {
     done();
   });
  });
});

它根本不会运行第二个测试,并且我没有从users_controller.js文件中获得控制台日志:

module.exports = {
  greeting(req,res) {
    res.send({ how: 'dee' });
  },create(req,res) {
    console.log(req.body);
    res.send({ how: 'dee' });
  }
};

我不相信我有任何语法错误,不确定为什么Mocha不会只运行第二个测试。

解决方法

如果将Mocha嵌套在import pathlib print(pathlib.Path.cwd()) >>> A:\Programming\Python\generalfile 文件夹内的文件夹中,则Mocha似乎找不到测试,但是当我将测试文件移至主test/文件夹时,Mocha能够运行该测试。原因是,如果您查看test/内的"scripts"对象,则会发现package.json缺失:

--recursive

但是我不得不以这种方式编写测试脚本,因为当我遇到"test": "nodemon --exec mocha -R min"时,Windows 10一直给我一个错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...