私はAngular2(rc4)とWebpackを使用してElectronアプリを開発しています。ユニットテストはカルマと一緒に走った。Electronが必要なAngular2サービスのユニットテスト
:import { remote } from 'electron';
@Injectable()
export class SettingsService {
main = remote.require('./main.js');
settings: any;
constructor() {
this.settings = this.main.getSettings();
}
}
私は、このファイルのためのユニットテストを書きたい、カルマのランナーは、このエラーがスローされます。
私はこの方法でそれを含んでいる電子プロセスと通信サービスを、持っています
Error: Cannot find module "electron"
at webpack:///src/app/services/settings.service.ts:9:0 <- spec-bundle.js:88524
私はターゲットを追加した場合:「電子レンダラ」をwebpack.test.jsの設定ファイルに、エラーの変化へ:
ReferenceError: Can't find variable: require
at webpack:/external%20%22electron%22:1:0 <- spec-bundle.js:83860
これは私のwebpack.test.jsファイルです:
const helpers = require('./helpers');
module.exports = {
devtool: 'inline-source-map',
resolve: {
extensions: ['', '.ts', '.js']
},
module: {
loaders: [
{
test: /\.ts$/,
loader: 'ts'
},
{
test: /\.html$/,
loader: 'html'
},
{
test: /\.(png|jpe?g|gif|svg|woff|woff2|ttf|eot|ico)$/,
loader: 'null'
},
{
test: /\.css$/,
loader: 'null'
}
],
postLoaders: [
{
test: /\.(js|ts)$/, loader: 'istanbul-instrumenter-loader',
include: helpers.root('src'),
exclude: [
/\.(e2e|spec)\.ts$/,
/node_modules/
]
}
]
},
target:'electron-renderer'
}
質問がある:私は電子プロセスと通信Angular2コンポーネントのユニットテストを実行するにはどうすればよいです。