1

Maven で jstestrunner と qunit を使用して、いくつかの JavaScript 単体テストをセットアップしようとしています。私は、インフラストラクチャのセットアップを含む多くの Java 単体テストに取り組んできましたが、Javascript に対してこれを行うのは初めてです。jstestrunner ページのセットアップ情報では、重要な情報が省略されています。これについては jstestrunner メーリング リストで質問したいのですが、彼らの codehaus ページにあるメーリング リストへのリンクはアクティブではなく、おそらく JIRA を提出する以外に、開発リーダーである Christopher Hunt に連絡する方法が見つかりません。不適切なようです。

使用方法のページでは、phantomjs のセットアップについて説明されていますが、qunit インターフェイスについては何も説明されていません。qunit をよく使ったことのある人には、おそらく明らかだと思います。

ルート JUnit テスト ラッパーを作成しましたが、qunit へのミッシング リンクを設定する方法がわかりません。

4

2 に答える 2

0

QUnit、PhantomJS、および js-testrunner を使用して、基本的なセットアップと実行を行いました。このリンクはいくつか役に立ちました: jstest-runner-sample-project

私が使用した構成のために:

  1. js-testrunner 1.0.2
  2. Qユニット 1.14.0
  3. PhantomJS v1.9.7
  4. plexus utils v1.5.7 (js-testrunner で必要)
  5. jetty v8.1.15 (js-testrunner で必要)
  6. jackson v1.9.13 (jetty で必要)

テストには 4 つのファイルが必要でした。

  1. JUnit Java テスト ラッパー - FirstTest.java
  2. QUnit の HTML テスト ラッパー - firstTest.html
  3. テストする JavaScript ファイル - tests.js
  4. log4j 構成 (標準、基本構成)

この基本的なテストに使用した 4 つのファイルは次のとおりです。

FirstTest.java:

package delta;

import org.codehaus.jstestrunner.junit.JSTestSuiteRunner;
import org.junit.runner.RunWith;

@RunWith(JSTestSuiteRunner.class)
@JSTestSuiteRunner.Include(value="firstTest.html")
@JSTestSuiteRunner.ResourceBase({ "src-web/delta", "../lib" })
public class FirstTest {
}

firstTest.html:

<!DOCTYPE html>
<html>
<head>
  <meta charset="ISO-8859-1">
  <script type="text/javascript" src="script/jquery-1.8.3.min.js"></script>
  <script type="text/javascript" src="script/qunit-1.14.0.js"></script>
  <link type="text/css" rel="stylesheet" href="css/qunit-1.14.0.css"/>
  <script type="text/javascript" src="tests.js"></script>
<title>firstTest</title>
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>
</body>
</html>

tests.js:

/**
 * Supports firstTest.html
 */
(function() {
  var val;

  module( "First Test", {
    setup: function() {
      val = 1
    }
  });

  test( "hello test", function() {
    ok( val == "1", "Passed!" );
  });
}());

Eclipse 内から JUnit を呼び出しました。これは、プロジェクトのルート ディレクトリを使用するため、テスト ファイルへのパスが必要です。

簡単なテストを構成した後、標準の Eclipse Run As->JUnit Test でそれらを実行できます。

ここに画像の説明を入力

于 2014-05-09T16:15:21.247 に答える
0

QUnit、phantomjs、ant、および修正版のqunit-runnerを使用して、いくつかの QUnit テストを実行してきました。コード自体はクローズド ソース プロジェクトにありますが、その要点は、ターゲットが 1 つしかないファイルに対して呼び出すant testことbuild.xmlですtest

testターゲットはphantomjs、qunit-runner といくつかのコマンド ライン引数を使用して呼び出します。qunit-runner が、package.jsonテスト対象のファイルを挿入する を必要としていると推測するなど、いくつかの魔法が含まれていました。テスト自体は、ant ビルド ファイルの引数を使用して渡されます。

テストするファイルごとに個別のテスト ファイルがあり、各テスト ファイルには少なくとも 1 つのmodule定義があります。

qunit-runner は、qunit の構成オブジェクトを構築し、テスト対象のファイルを挿入し、qunit プロセスのさまざまな段階のコールバック フックを含みます。これにより、jUnit に見える xml を構築して、Jenkins ビルド サーバー ページにフィードできます。

JavaScript の世界の単体テスト フレームワークはまだ初期段階にあるという最初の結論に同意します。しかし一方で、JavaScript は非常に順応性の高い言語であり、テスト フレームワークを支えるための鉄の鋳型の規則はほとんどありません。他の言語では、単体テスト フレームワークに対応する何らかのモッキング フレームワークがなければ、それほど遠くまで到達することはできません。

于 2013-09-25T21:22:24.883 に答える