2

残り火ジェネレーターによって生成されたコードをほとんど変更していません

yo ember

test/spec/test.js を少し変更します

'use strict';
(function () {
    describe('Give it some context', function () {
        describe('maybe a bit more context here', function () {
            it('should equal to the title', function () {
                var title = document.title;
                title.should.equal('Ember Starter Kit');
                            console.log(title) //doesn't output anything in the terminal
            });
            it('should equal to a number', function () {
                1.should.equal(1);
            });
        });
    });
})();

2つの奇妙なことがあります:

  1. console.log はターミナルに何も出力しません
  2. それは0テストを示しています:

    「mocha:all」(mocha) タスクの実行 テスト: http:// . .*.*/index.html

    0 テスト完了 (1 ミリ秒)

    エラーなしで完了。

4

1 に答える 1

2

「0 個のテストが完了しました」というメッセージが表示された場合、テスト ファイル内にエラーがあることに気付きました。

テストには 2 つの問題があります。

  1. console.log(title) の後にセミコロンがありません
  2. Integer でメソッドを実行すると、構文エラーになります。次のことを試してください。

expect(1).to.equal(1);

また、index.htmlChai を含めた後に次の行を含めるようにしてください (should機能するように)。

...
<!-- assertion framework -->
<script src="lib/chai.js"></script>
<script>var expect = chai.expect</script>
<script>var should = chai.should()</script>
...

これにより、テストが実行されます。ただし、コンソールのログの問題に対する答えはありません。私は自分で答えを探しています。grunt-mocha と PhantomJS の何かのようです。

編集: grunt-mocha のコンソール ログが無効になっていることが判明しました: grunt-mocha source

node_modules/grunt-mocha/tasks/mocha.jsプロジェクト ディレクトリ内に移動すると、101 行目のコメントを外すことができ、プロジェクトのログが機能します。

完全に更新されたテスト ファイル:

/*global describe, it, document, expect */
'use strict';
(function () {
    describe('Give it some context', function () {
        describe('maybe a bit more context here', function () {
            it('should equal to the title', function () {
                var title = document.title;
                title.should.equal('Ember Starter Kit');
                            console.log(title); //doesn't output anything in the terminal
            });
            it('should equal to a number', function () {
                expect(1).to.equal(1);
            });
        });
    });
})();

編集: grunt-mocha の開発者から:

うん、コマンドラインでコンソール出力を取得するには、その行のコメントを外してください...ただし、自動テストを実行している場合は通常、それを望まないため、デフォルトで無効になっています。本当にデバッグしたい場合は、ブラウザーで仕様を開き、ブラウザー コンソール/デバッガーを使用することをお勧めします。ボーナスは、スイート/テストをクリックして、関心のあるテストのみを実行できることです。

于 2013-04-20T01:26:15.503 に答える