2017-09-14 118 views
1

node-mysql2、react、sequelize、jestを使用してプロジェクトをテストする際に問題があります。この問題は、テスト中にのみ発生します。jest.jsでエンコーディングが認識されない

Encoding not recognized: 'cesu8' (searched as: 'cesu8') 
    at Object.getCodec (project/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:106:23) 
    at Object.getDecoder (project/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:122:23) 
    at Object.<anonymous>.exports.decode (project/node_modules/mysql2/lib/parsers/string.js:9:23) 
    at Packet.Object.<anonymous>.Packet.readNullTerminatedString (project/node_modules/mysql2/lib/packets/packet.js:373:23) 
    at Function.Object.<anonymous>.Handshake.fromPacket (project/node_modules/mysql2/lib/packets/handshake.js:18:31) 
    at ClientHandshake.Object.<anonymous>.ClientHandshake.handshakeInit (project/node_modules/mysql2/lib/commands/client_handshake.js:98:38) 
    at ClientHandshake.Object.<anonymous>.Command.execute (project/node_modules/mysql2/lib/commands/command.js:40:20) 
    at Connection.Object.<anonymous>.Connection.handlePacket (project/node_modules/mysql2/lib/connection.js:515:28) 
    at PacketParser.onPacket (project/node_modules/mysql2/lib/connection.js:94:16) 
    at PacketParser.executeStart (project/node_modules/mysql2/lib/packet_parser.js:77:14) 
    at Socket.<anonymous> (project/node_modules/mysql2/lib/connection.js:102:29) 

答えて

1

これは、動的な怠惰をやっmysql2によって引き起こされる問題は、エンコードの必要と冗談はこれを処理することができることではありません。

は、あなたのコードに早期setupTestFrameworkScriptFile

require('mysql2/node_modules/iconv-lite').encodingExists('foo'); 

またはこのどこかにこのスニペットを追加します:

import iconv from 'iconv-lite'; 
import encodings from 'iconv-lite/encodings'; 
iconv.encodings = encodings; 
をいくつかの回避策ユーザーを見ては hereを示唆しています
関連する問題