chilkat ftp, дающий карме модульного теста непредвиденную ошибку символа on в двоичном файле - PullRequest
0 голосов
/ 28 октября 2019

Мне нужно создать несколько модульных тестов с некоторым унаследованным кодом. Весь код находится в большом файле, который в конечном итоге необходимо разделить. Мой 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.
...