Я пытаюсь настроить модульное тестирование для своего бота discord.js, но при запуске npm test
в терминале во время прохождения теста все равно выдает ошибку.
Это изображениетеста, за которым следует ошибка: https://i.imgur.com/m2EOuxc.png
Мне нужно исправить эту ошибку при тестировании, при этом бот остается в состоянии функционировать.
Я попытался полностью удалитьстрока, указанная в ошибке (и строки, имеющие отношение к этой конкретной строке)
jsfiles.forEach((f, i) => {
let props = require(`./cmds/${f}`)
bot.commands.set(props.help.name, props)
})
Устранение этой проблемы решило проблему тестирования, но привело к тому, что бот не работал правильно (он не загружалкоманды, то есть бот не может взаимодействовать с), что здесь не является целью.
Я также проверил, что каждый из файлов в папке cmds
заканчивается
module.exports.help = {
name: '<name of the command I use for each command>'
}
Это часть моего bot.js
файла, который содержит проблему.
// Loads the commands for the bot:
fs.readdir('./cmds/', (err, files) => {
if (err) console.error(err)
let jsfiles = files.filter(f => f.split('.').pop() === 'js')
if (jsfiles.length <= 0) {
console.log('No commands to load!')
return
}
if (testingSettings) {
console.log(`Loading ${jsfiles.length} commands!`)
}
// This is the problem referenced above:
// ----------------------------------------------------------------------
jsfiles.forEach((f, i) => {
let props = require(`./cmds/${f}`)
bot.commands.set(props.help.name, props)
})
// ----------------------------------------------------------------------
})
Это весь мой код в bot.test.js
файле
const {
// Functions
checkingTesting,
// Variables
testingSettings,
} = require('./bot')
test('checking to see if testing-mode is on', () => {
expect(checkingTesting(testingSettings, 'token')).toBe(process.env['token']);
});
Если это необходимо.Это функция, переменная и метод экспорта, которые используются для подключения bot.js
к bot.test.js
:
Переменная (в файле bot.js
)
const testingSettings = false
Функция (в * 1034)* файл)
function checkingTesting (testingSettings, name) {
if (testingSettings) {
return testSettings[name]
} else if (!testingSettings) {
return process.env[name]
}
}
Экспорт (в bot.js
файл)
module.exports = {
// Exporting functions
checkingTesting: checkingTesting,
// Exporting variables
testingSettings: testingSettings,
}