Модульный тест не работает на Jenkins, а не на локальном (проект React)

Мои модульные тесты для моего проекта React отлично проходят на локальном компьютере, но не работают на Jenkins. Я получаю это сообщение об ошибке на Jenkins:

Error: Cannot find module '../../../../src/components/Sidebar/MenuList.jsx'

Файл существует и импортируется в мой тестовый файл следующим образом:

import { MenuList } from '../../../../src/components/Sidebar/MenuList.jsx';

И экспортировано в мой файл MenuList.jsx:

export class MenuList extends Component { ... }

Я использую Mocha/Enzyme/Sinon для тестирования + Istanbul для покрытия.


person Lauraponi    schedule 21.12.2017    source источник
comment
ваша локальная машина Mac? а jenkins линукс машина/вм?   -  person jstuartmilne    schedule 21.12.2017
comment
Это мак, да. Что касается Дженкинса, я не уверен (сам не настраивал). Как я могу проверить?   -  person Lauraponi    schedule 21.12.2017


Ответы (1)


Поскольку у вас есть Mac, и я предполагаю, что jenkins основан на Linux. Проверьте имена файлов. это означает, что имена чувствительны к регистру.

Ваша проблема в том, что Mac не чувствителен к регистру, в то время как jenkins (я предполагаю) находится на хосте Linux, который есть. так скажите, что у вас есть имя файла, как это

импортировать из '../MyCoolDir'

и имя каталога «../myCoolDir», оно будет работать на Mac, но не на вашем jenkins. так как хост Linux не сможет найти файл, потому что у него нет точного имени

Вы, вероятно, захотите взглянуть на это, чтобы настроить git тоже git">Как мне зафиксировать изменения имени файла с учетом регистра в Git?

Надеюсь, поможет

person jstuartmilne    schedule 21.12.2017
comment
Вау, спасибо большое. Это была проблема. У меня также было тестовое покрытие, которое не соответствовало Стамбулу, и это тоже решило эту проблему. Часы бесполезного царапания головы:'. Спасибо! - person Lauraponi; 21.12.2017