7

私はWindows8アプリを作成していて、その単体テストを作成しています。Windows 8環境内で自動化された方法でそれらを実行するにはどうすればよいですか?

Windows 8環境やDOMに依存せずに、非常に単純なJavaScriptファイルを作成すると、Node.jsを使用してコマンドラインから単体テストを実行できます。これは非常に高速です(1秒未満)。

DOMを使用する必要があり、DOMの使用法をあまり新しい機能にしない場合は、Node.jsでjsdomを使用して、同じセットアップと同じ速度を得ることができます。

しかし、jsdomは不完全であり、WinJSベースライブラリ(例WinJS.Promise)やWindows.*列挙型などの基本的なWindows8機能を使用したいことがよくあります。そして理想的には、アプリが実際に実行されるのと同じJSエンジンとDOM環境でテストする必要があります。

したがって、理想的には、テストランナーが必要です。実際のDOMでいくつかの単体テストを実行し、WinJSおよびWindowsランタイムAPIにアクセスできる軽量のWindows8HTML5コンテナーです。ビルドプロセスに統合するには、結果をコマンドライン(stdout、stderr)に報告し、成功または失敗に応じてテストランナーのリターンコードを変更する機能も必要です。また、完全に自動化され、バックグラウンドで実行可能で、非常に高速(10秒未満)である必要があります。

PhantomJSなどのWebKit用のこのようなツールがあることを私は知っています。WindowsランタイムHTML5環境にはそのようなものがありますか?そうでない場合は、そのようなものを構築するためにどのAPIを調べる必要がありますか?

4

1 に答える 1

10

現在、Win8/WinJSテストスイートをヘッドレスで実行する方法はありません。WinJSアプリに必要なランタイムは、完全なWinJSアプリを実行しない限り、それ自体で立ち上がることはできません。

テストを実行するための最良の方法であるIMEは、ソリューションに別のWinJSプロジェクトを作成してテストを実行することです。

Christopher Bennageには、基本的なセットアップについて説明したブログ投稿があります。http://dev.bennage.com/blog/2012/08/15/unit-testing-winjs/

そして、私は少し先に進むいくつかのブログ投稿を持っています:

http://lostechies.com/derickbailey/category/winjs/

http://lostechies.com/derickbailey/2012/08/17/asynchronous-unit-tests-with-mocha-promises-and-winjs/

http://lostechies.com/derickbailey/2012/08/21/a-winjs-specrunner-automating-script-tag-insertion-for-unit-tests/

テスト用に別のプロジェクトを実行するというアイデアが気に入らない場合、またはJasmineやMochaの代わりにQUnitが必要な場合は、QUnit-Metroをチェックしてください:http://qunitmetro.github.com/QUnitMetro/-で実行されます-実際のアプリでプロジェクトを作成し、開発モードでコンテキストメニューを表示して、現在のページのテストを実行します。

私はQUnitやQUnit-Metroがページ内で機能する方法のファンではありません。ただし、別のプロジェクトが気に入らない場合は、これが適していると思うかもしれません。

お役に立てば幸いです。

于 2012-09-28T13:50:15.317 に答える