2016-12-21 11 views
1

私はAVAテストランナーを見ており、並行処理機能はかなり魅力的なようです。テストあなたが簡単にテストの束が失敗したときの影響を受けているかのコンポーネント伝えることができるこの方法を編成することによってAVAのスイート(またはその他のグループ)は(JSテストライブラリ)AVAにはないのはなぜですか?

describe('Some Class',() => { 
    describe('#someMethod',() => { 
     describe('some condition',() => { 
      it('does something',() => {}); 
     }); 
    }); 
}); 

、あなたは簡単に直すことができます。しかし、私はあなたがそうのようなテストを整理することができモカ、に慣れています特定のクラス/メソッド/条件のテストを実行します。

しかし、AVAにはそのようなものはありません。そのテストは、すべての任意の「メタ情報」を欠き、ただ、次のとおりです。

test(t => { 
    t.deepEqual([1, 2], [1, 2]); 
}); 

しかし、私の質問がされるように、明らかにAVAは人気があり、広く使用されているフレームワークは、次のとおりです。どのようにそれはテストメタ情報なしで動作しますか? AVAでメタ情報を定義する他の方法はありますか? AVAには他の機能があるため、メタ情報は必要ないだけですか?

基本的に、AVAのアウトサイダーとして、私は実際のテストスイート(AVAの例に示されている基本的なテストだけではない)があるときの動作を理解しようとしています。別の言い方をすると、私がAVAに切り替えると、Mocha(そして他のほとんどのテストランナー)のテスト組織が見逃されますか?

+0

HTTPSログインすることができます.com/avajs/ava/issues/222 –

+1

ava-specがあなたのためにうまくいかない場合、あなたがそれを "見逃す"かどうかに関しては、言い難い - それは意見のようなものです。 –

+0

このリンクは非常に役に立ちましたが、AVAはかなりハーフベークしたようです。スレッドには、テストグループが良いと同意している人がたくさんいます(いくつかの「私はそれほど必要な人はいません」という記事もあります)、問題の1年以上経過しても何も起こっていませんAVAデベロッパーは自分のライブラリを作っている人を数えない限り)。私はそれがグループの欠如以上のものから私を恐れると思う!しかし、少なくとも今AVAにはグループがない理由を理解しています:) – machineghost

答えて

7

ビットのためにエヴァを使用したが、今では私の質問への答えはエヴァ持っているのスイートをしていることであると表示されますが、明示的にスイートを定義モカ(または類似のフレームワーク)で、エヴァでスイートは暗黙的であり、とは違ってテストを含むファイルに基づいています。

つまり、与えられた "スイート"で特定のコードbeforeEachテストを実行する場合は、これらのテストをtest.beforeEachステートメントと同じファイルに置くだけで、それらのテストの前に実行されます。

明らかに、この結果は、describeステートメントをMochaで可能な方法でネストすることはできないため、テスト出力がそれほど細かくはなりません。ただし、Avaがテスト出力を表示するときは、ファイル構造を使用してこれを軽減します。

例えば、テストは、次の出力につながるファイル `サービス/ログインfacebook」で "ログインでき":// githubの:

サービス>ログインfacebook>

関連する問題