Мне нужно создать несколько модульных тестов с некоторым унаследованным кодом. Весь код находится в большом файле, который в конечном итоге необходимо разделить. Мой karma-jasmine
модульный тест извлекает этот один большой файл, который ссылается на chilkat_node8_win32
. Мой тестовый пример не выполняет chilkat
. Я не могу исключить chilkat
изнутри karma.config.js
. chilkat
находится внутри кода, а не в отдельном файле.
Я оперативно настроен и успешно протестировал тестовый модуль karma
hello world. Затем я перешел к тестированию целевого кода и получил множество ошибок конфигурации. Я перешел к этому последнему.
После осмотра ... Я не смог найти никаких karma
связанных юнит-тестов с chilkat
, которые не были бы мертвой ссылкой в python
илииз-за проблемы с антивирусом (у меня есть красные флажки в игре).
Я попытался исключить файл, но опять-таки он не сработал.
Позже я узнал chilkat
- это купленный ftp, и этот исходный код является частным. Отсюда и ошибка на выходе (Source code omitted for this binary file)
. Я не уверен, является ли это причиной того, что karma
не работает, или что.
Я ищу другой путь крошки, чтобы следовать, иначе мне придется заново подключить некоторые SW трубы, чтобыразделите часть кода ftp chilkat
в отдельный файл, чтобы не включать зависимость chilkat
в код модульного теста.
Любая стандартная обратная связь приветствуется, поскольку мне потребуется обоснование для дополнительного объема-ползать. Я считаю, что любой FTP-тест должен быть системным тестом, поэтому, вероятно, я ничего не вижу в chilkat
с юнит-тестами.
Заранее спасибо. ~ Майк
#Trimmed down unit test code to demonstrate issue:
const chilkat = require('chilkat_node8_win32');
const ftp = new chilkat.Ftp2();
#karma.config.js
module.exports = function (config) {
config.set({
//root path location to resolve paths defined in files and exclude
basePath: '',
//files/patterns to exclude from loaded files
exclude: [ '/**/chilkat.node' ], // <--- attempt to exclude
...
webpack: {
externals: ['pg', 'sqlite3', 'tedious', 'pg-hstore'],
module: {
rules: [
{
test: /\.js$/i,
exclude: '/**/chilkat.node', // <--- attempt to exclude
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
]
},
node: { fs: 'empty', child_process: 'empty', dns: 'empty', net: 'empty', tls: 'empty', hstore: 'empty', chilkat_node8_win32: 'empty' } // <--- attempt to enable
},
preprocessors: {
//add webpack as preprocessor to support require() in test-suits .js files
'./test/*.js': ['webpack']
},
Error
$ npm test
...
> karma start karma.conf.js
i 「wdm」: Compiled with warnings.
START:
i 「wdm」: Compiling...
× 「wdm」:
ERROR in ./node_modules/chilkat_node8_win32/chilkat.node 1:2
Module parse failed: Unexpected character '�' (1:2)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
(Source code omitted for this binary file)
@ ./lib/modules/ABC.js 1:14-44
@ ./test/test.js
i 「wdm」: Failed to compile.