問題タブ [karma-mocha]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Angular によって認識されないプロバイダー内の関数
最初に、私が達成したいことの背景を少し説明します。挿入して使用する前に、いくつかの構成が必要なサービスがあります。いくつかの調査を行った後、サービスのプロバイダーを持つことが最善の解決策になると考えました. そこで、この例に従ってプロバイダーを実装しました。Typescript コンパイラー (私は typescript を使用してコードを有効な JavaScript にコンパイルしています) が問題ないと判断したとしても、JavaScript は、プロバイダーを介していくつかのオプションを設定するために使用できる関数を認識しません。
私のコードは次のようになります (一部のコードは省略されているか、名前が変更されています)
この問題は、単体テストの 1 つでプロバイダーを使用し (テスト用に Mocka と共に Karma を使用しています)、setOptions
関数を呼び出すときに発生します。これはこのように行われます。
このテストを実行すると、カルマは次のエラーをスローします
TypeError: provider.setOptions は Context.[anonymous] の関数ではありません
また、コンパイルされた JavaScript Visual Studio Code は、行のプロバイダー変数に緑色の警告を表示しています (エラーではないと思います)。.provider('CustomService', CustomServiceProvider);
タイプ '() => void' の引数は、タイプ 'IServiceProvider' のパラメーターに割り当てられません。プロパティ '$get' がタイプ '() => void' にありません。
(ローカル変数) CustomServiceProvider: () => 無効な
プロバイダー
この問題の修正にすでに何時間も費やしましたが、解決策が見つからないようです。私が間違っていることを修正する方法について何か考えはありますか?
前もって感謝します。
編集 (2015 年 9 月 30 日)
私が話しているサービスは次のようになります。
unit-testing - Karma はスイート全体を再度実行せずにファイルの変更を更新できますか?
Grunt を通じて Karma を使用しています。約 1000 個のテストがあり、ファイルを変更するたびにすべてのテストを実行するのは少し面倒です ( autoWatch = true
)。
これが現在行っていることです。
- でカルマを開始し
singleRun=false, autoWatch=false
ます。 - デバッグ ページを開き、特定のスイートを grep します (mocha html レポーターを使用)。
- そのスイートに関連するテストまたはファイルを変更します。
- デバッグ ページを更新して、一連のテストを再度実行します。
- (3) の私の変更は Karma に反映されていないため、テストは何も変更されていないかのように動作します。
これは私が必要なものです:
- でカルマを開始し
singleRun=false, magicOption=true
ます。 - デバッグ ページを開き、特定のスイートを grep します (mocha html レポーターを使用)。
- そのスイートに関連するテストまたはファイルを変更します。
- デバッグ ページを更新して、一連のテストを再度実行します。
- 私の変更は適切に取得され、grep されたテストのみが実行されます。
設定autoWatch=true
すると必要なものが得られますが、ファイルを変更するたびに 1000 個のテストのスイート全体がバックグラウンドで実行され、すぐに環境が崩壊します。
magicOption
Karma docs によると同等のものはないと思いますが、同じ動作を実現する方法はありますか?
どうもありがとう。
mocha.js - Mocha インターフェイス: Uncaught ReferenceError: `describe` が定義されていません
私はモカ/シノン/チャイとjqueryでカルマを実行するためにGulpを使用しています
私の karma.conf.js には次のものがあります。
そして、インストールされているノードモジュールは
しかし、カルマを実行すると、このエラーが発生します
カルマモカとモカをグローバルにインストールしようとしました。karma.conf.js にプラグインとして karma-mocha を入れてみた
javascript - Angular テスト タイプ エラー
カルマ、モカチャイ、シノンでテストケースを試しました。
サービスを使用するとエラーが発生します。これは私の間違いです。助けてください。
これは私のindexcontroller.js
これは私の indexcontroller のテストです。indeccontroller.test.js
これは私の共通のサービスです
これがサービスのテストです。
karma-runner - XHR と Access-Control-Allow-Origin
私がテストしているメソッドの 1 つは、XMLHttpRequest を「http://localhost:4848/qrs/extension/schema?xrfkey=asdfasdfdf」に送信します。次のようなエラーが表示されます -
これで、テストが「localhost:9876」で提供され、localhost:4848 にアクセスしようとすると、実際にはクロス ドメイン ポリシーに違反していることがわかります。Karma プロキシ設定を確認して試してみました -
しかし、これを行うと、実際には「http://localhost:9876/qrs/extension/schema?xrfkey=asdfasdfdf」からコンテンツが提供されます。しかし、この方法ではクライアント コードは機能しません。クライアント コードは XHR リクエストを「http://localhost:4848/qrs/ .....」に直接送信しますが、「http://localhost:9876/qrs/ .....」には送信しないためです。
どうすればこれを解決できますか?
また、構成ファイルにさまざまなヘッダーを設定するオプションがある方がよいのではないでしょうか? ここでテストについて話していることを少なくとも知っておいてください(つまり、本番環境ではありません)。
前もって感謝します。
angularjs - Angular Extend の単体テスト方法
角度拡張を使用しているコントローラーがあります。angular extend をテストするにはどうすればよいですか?
facebook - React Js を使用して開発されたアプリのテスト フレームワーク
React JS を使用して開発されたアプリケーションをテストするために使用できるテスト フレームワークについて研究しています。これまでのところ、JEST および Mocha JS (Chai JS および Sinon JS と統合) について読んできましたが、完全に自動化されたテスト フレームワークを開発するために使用できるものを絞り込むことはまだできません。セレン Web ドライバーがフロント エンドに適していることはわかっています。テスト、ReactJS アプリケーションに固有のものはありますか?
angularjs - AngularJS と mocha: 各テストの前に $httpBackend を呼び出す
私はangularjsで作業しており、mochajsでテストを書いています。アプリケーションに多言語サポートを実装しましたが、多くのテストケースで language.json に対して予期しないリクエストが発生するという問題があります。
各テストに言語処理用の「$httpBackend.whenGet(.....」を追加せずに、これを処理する方法はありますか?