Ava игнорирует каталоги томов во время тестирования и использует определенную папку, в которой находятся тесты - PullRequest
0 голосов
/ 06 декабря 2018

Когда я запускаю свои ava-тесты с помощью команды:

npm test

Я хочу сделать ava для ввода в папку, которая используется для томов докера для доставленного проекта docker-compose.yml, который я используюэто порождает среду разработки с необходимыми сервисами для разработки.

В моем случае я создал сервер openfire xmpp для пользовательского клиента xmpp:

version: '3'
services:
  openfire:
    build:
      context: submodules/docker-openfire
      dockerfile: submodules/docker-openfire/Dockerfile
    image: pcmagas/openfire:4.2.3-ubuntu
    ports:
      - "9090:9090"
      - "5222:5222"
      - "7777:7777"
      - "7070:7070"
      - "7443:7443"
    volumes:
      - "./volumes/openfire:/var/lib/openfire"

И я настроил выполнение тестав моем package.json как:

  "scripts": {
    "test": "ava"
  },

Но когда я запускаю npm test, я получаю ошибку:

> custom_xmpp@1.0.0 test /home/pcmagas/Kwdikas/master_thesis/custom_xmpp
> ava

glob error { [Error: EACCES: permission denied, scandir '/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/volumes/openfire']
  errno: -13,
  code: 'EACCES',
  syscall: 'scandir',
  path:
   '/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/volumes/openfire' }
Error: EACCES: permission denied, scandir '/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/volumes/openfire'
    at handlePaths (/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/node_modules/ava/lib/ava-files.js:13:18)
    at AvaFiles.findTestFiles (/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/node_modules/ava/lib/ava-files.js:136:10)
    at Api.run (/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/node_modules/ava/api.js:85:99)
    at Object.exports.run (/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/node_modules/ava/lib/cli.js:248:7)
    at Object.<anonymous> (/home/pcmagas/Kwdikas/master_thesis/custom_xmpp/node_modules/ava/cli.js:10:23)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
    at startup (internal/bootstrap/node.js:285:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)
npm ERR! Test failed.  See above for more details.

Таким образом, я попытался со следующей конфигурацией в package.json, но все жеЯ получаю ту же ошибку, упомянутую выше (на основе этого ответа и этого ответа ):

  "ava":{
    "files":[
      "!./volumes/openfire/__tests__",
      "!./volumes/openfire/test/*",
      "./test/*.js"
    ],
    "sources": [
            "**/*.{js,jsx}",
      "!dist/**/*",
      "!./volumes/"
        ]
  }

Поэтому я изменил на эту ошибку, в результате которой была упомянута выше ошибка:

"ava":{
    "files": ["./test","!./volumes"],
    "sources": "./src/**/*.{js,jsx}"
  },

Также, поместив следующую конфигурацию:

 "ava":{
    "files": "!./volumes",
    "sources": "./src/**/*.{js,jsx}"
  },

Я получаю следующую ошибку:

> custom_xmpp@1.0.0 test /home/pcmagas/Kwdikas/master_thesis/custom_xmpp
> ava


  ✖ Couldn't find any files to test

npm ERR! Test failed.  See above for more details.

В моей тестовой папке у меня есть файл с именем test/participantTest.js и имеет следующий контент:

import test from ava;
import { RosterItem } from './src/xmpp_helpers/roster';

test('createItem', t => {
    const participant = new RosterItem('user@example.com');
    if (participant.getJid() === 'user@example.com') {
        t.pass('A roster Item Has sucessfully been Created');
    }
    else {
        t.fail('Failed to Create a roster Item');
    }
});

У вас есть идеи?почему я не могу запустить свои тесты, расположенные в папке ./test/?

...