首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Strapi单元测试

Strapi单元测试
EN

Stack Overflow用户
提问于 2020-07-14 05:41:54
回答 1查看 866关注 0票数 1

对于strapi单元测试(使用mysql作为数据库),我遵循了正式文档,当我使用npm运行测试运行相同时,我会得到如下所示的错误

my@0.1.0测试D:\Gerrit\website_backend\TE_MCA_DMSWEBV2 jest -forceExit-检测

用"1“调用process.exit

代码语言:javascript
复制
  at Strapi.stop (node_modules/strapi/lib/Strapi.js:238:13)
  at Strapi.stopWithError (node_modules/strapi/lib/Strapi.js:224:17)
  at node_modules/strapi-connector-bookshelf/lib/mount-models.js:625:14

运行test/app.test.js npm!代码ELIFECYCLE npm错误!错误1国家预防机制错误!my@0.1.0测试:jest --forceExit --detectOpenHandles npm!退出状态1 npm错误!国家预防机制错误!@0.1.0测试脚本失败。国家预防机制错误!这可能不是npm的问题。上面可能还有额外的日志输出。

database.js

代码语言:javascript
复制
module.exports = ({ env }) => ({
  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'bookshelf',
      settings: {
        client: 'mysql',
        host: env('DATABASE_HOST', '127.0.0.1'),
        port: env.int('DATABASE_PORT', 3306),
        database: env('DATABASE_NAME', 'myDB'),
        username: env('DATABASE_USERNAME', 'root'),
        password: env('DATABASE_PASSWORD', ''),
        ssl: env.bool('DATABASE_SSL', false),
      },
      options: {}
    },
  },
});

test/database.json

代码语言:javascript
复制
{
  "defaultConnection": "default",
  "connections": {
    "default": {
      "connector": "bookshelf",
      "settings": {
        "client": "mysql",
        "filename": ".tmp/test.db"
      },
      "options": {
        "useNullAsDefault": true,
        "pool": {
          "min": 0,
          "max": 15
        }
      }
    }
  }
}

tests/app.test.js

代码语言:javascript
复制
const fs = require('fs');
const { setupStrapi } = require('./helpers/strapi');

/** this code is called once before any test is called */
beforeAll(async (done) => {
  await setupStrapi(); // singleton so it can be called many times
  done();
});

/** this code is called once before all the tested are finished */
afterAll(async (done) => {
  const dbSettings = strapi.config.get('database.connections.default.settings');

  //delete test database after all tests
  if (dbSettings && dbSettings.filename) {
    const tmpDbFile = `${__dirname}/../${dbSettings.filename}`;
    if (fs.existsSync(tmpDbFile)) {
      fs.unlinkSync(tmpDbFile);
    }
  }
  done();
});

it('strapi is defined', async (done) => {
  expect(strapi).toBeDefined();
  done();
});

tests/helpers/strapi.js

代码语言:javascript
复制
const Strapi = require('strapi');
const http = require('http');

let instance;

async function setupStrapi() {
  if (!instance) {
    /** the following code in copied from `./node_modules/strapi/lib/Strapi.js` */
    await Strapi().load();
    instance = strapi; // strapi is global now
    await instance.app
      .use(instance.router.routes()) // populate KOA routes
      .use(instance.router.allowedMethods()); // populate KOA methods

    instance.server = http.createServer(instance.app.callback());
  }
  return instance;
}
module.exports = { setupStrapi };
EN

回答 1

Stack Overflow用户

发布于 2020-07-16 08:52:50

它来自文件夹名,在它访问的文档中是./config/env/test/database.json,,但在您的文章./config/environments/test/database.json.中

实际上,这取决于新版本中的strapi,env

在这个问题上,您将得到所有的细节:关于Strapi Github的问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62888737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档