5

AngularJS プロジェクトの単体テストを作成しようとしています。このプロジェクトは angular-seed に基づいており、Testacular を使用してテストを実行します。test.sh スクリプトを実行しようとするたびに、常に "Executed 0 of 0 SUCCESS" という結果になります。

私はこの非常に単純な「テスト」を試しました:

describe('Testing Jasmine', function() {
  console.log('describe');
  var test = 'test';

  it('should be test', function() {
    console.log('it');
    expect(test).toEqual('test');
  });
});

その結果、'describe' のみがログに記録され、'it' の部分はスキップされます。クリーンなangular-seedクローンで同じことを試すと、すべてが機能します-したがって、TestacularとJasmineを使用したテストシステム自体が正しく機能していると思います. 私たちのプロジェクトはRailsに基づいていますが、比較のためにテストしていたきれいなangular-seedはApacheで実行されているので、これが違いかもしれないと思いました.Railsプロジェクトの混乱したパスまたは何か.

しかし、エラーメッセージはありません.e2eテストは機能します...また、いくつかのファイルが欠落しているかパスが正しくない場合、テストで「記述」をログに記録できないと思います-私が正しく理解していれば、これはジャスミンが正しいファイルを処理します (この疑似テストには他の依存関係はありません)。「説明」部分が正常に機能し、「それ」部分だけがスキップされているように見えるのはどうしてですか?

ヒントやヘルプをいただければ幸いです。

4

4 に答える 4

6

単体テストを行っている場合は、testacular 構成ファイルに angular-scenario.js ファイルを含めないでください。それは単体テストを壊します。

于 2013-02-20T19:35:24.243 に答える
2

testacularでのe2eテストには、まだ長い道のりがあります。私はしばらくこれに苦労しました。期待値の左側は、Angularドキュメントで定義されているメソッドの1つである必要があります: http: //docs.angularjs.org/guide/dev_guide.e2e-testing

以下は例です

describe('Testing Jasmine', function() {

  it('should be test', function() {
    expect(element('foo').count()).toEqual(1);
  });

});

規定されたメソッド呼び出しの1つをexpectに入力しない場合、testacularは「it」を実行しないことを覚えておいてください。

于 2012-10-19T06:05:15.780 に答える
1

また、テストしているページで次の属性のいずれかが使用されていることを確認してください。

'ng:app', 'ng-app', 'x-ng-app', 'data-ng-app'

関数angularInit()がこれらの引数のいずれかを持つ要素を見つけられない場合、ランナーは開始されないためです。

これは、ng-app を持たない webage で angular テスト ランナーを使用する場合に特に重要です。現在のバージョンでは機能しません。

于 2012-11-22T12:54:53.233 に答える
1

Javascript ファイルの順序を確認してください。

同様の問題が Testacular で報告されており、js ファイルを並べ替えると問題が修正されました

于 2012-10-19T04:38:59.427 に答える