私は現在 Angular ライブラリを構築しており、いくつかのテストを実行できるようにしたいと考えていました。これらの指示に従った後、すべてを適切にセットアップし、実際にテストを実行できるようになりました。
主な質問
すべてが正常に実行されますが、何かおかしなことが起こります。すべてのファイルのnpm test
隣で実行すると、ファイルが生成されます。通常、すべてのファイルと 1 つの大きなファイルは、ライブラリを使用するプロジェクトが使用するフォルダー内に配置されます。したがって、これらのJavaScriptファイルがどこから生成されたのか、そして実際に必要なのかどうかは誰にもわかりません。このコードはすべて、いわばdistフォルダーに既に存在するためです。.ts
.js
d.ts
.js
dist
ボーナス質問
上記ほど重要ではありませんが、すべてのテスト結果はターミナルに表示されますが、ブラウザーには以下のみが表示されます。
Karma v1.4.1 - 接続された Chrome 61.0.3163 (Mac OS X 10.12.6) はアイドル状態です
それで、私のテストを箱から出してすぐに表示するのと同じくらいうまく表示するための良い修正はありangular-cli
ますか?
宿題をした後、オンラインで相対的なものを見つけられなかったことに注意してください。不快なjsonの束をアップロードしたくありません。誰かが問題の方向性についてアイデアを持っている場合は、喜んでコードを含めます。
私のライブラリの基本構造はこれによって生成されました
編集:
karma.config.js
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine', 'karma-typescript'],
files: [
'init-test-bed.spec.ts',
'src/**/*.ts'
],
exclude: [
],
preprocessors: {
'**/*.ts': ['karma-typescript']
},
karmaTypescriptConfig: {
bundlerOptions: {
entrypoints: /\.spec\.ts$/,
transforms: [
require('karma-typescript-angular2-transform')
]
},
compilerOptions: {
lib: ['ES2015', 'DOM']
}
},
reporters: ['progress', 'karma-typescript'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
concurrency: Infinity
})
}
tsconfig.json
{
"compilerOptions": {
"baseUrl": "./src",
"experimentalDecorators": true,
"moduleResolution": "node",
"rootDir": "./src",
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2015",
"dom"
],
"skipLibCheck": true,
"types": [
"jasmine",
"node"
]
}
}
最後に、test
このスクリプトを実行します
"test": "tsc && karma start"