2

ネイティブでうまく機能する QUnit+Sinon.js を使用しています。この問題は、継続的な統合プロセスに組み込もうとしたときに発生しました。継続的インテグレーション環境で実行できるように、js-test-driver フレームワークを使用しています。以前は Sinon.js なしで使用していましたが、問題はありませんでした。しかし、Sinon.js プラグインを含めた後、まったく機能しません。テストを実行しようとすると、次のように表示されます。

D:/my/project/url/contentTest.js:60: TypeError: qTest is not a function
Total 0 tests (Passed: 0 Fails: 0 Errors: 0)(0.00 ms)

私の js-test-driver 構成:

server: http://localhost:9879

load:  
  # QUnit related files
  - qunit/lib/equiv.js
  - qunit/lib/QUnitAdapter.js
  - qunit/plugin/sinon-1.6.0.js
  - qunit/plugin/sinon-qunit-1.0.0.js

  # Dependencies
  - external/jquery/1.7.2/jquery.min.js

  # Files under test
  - content.js

  # Tests
  - contentTest.js

興味深いのは、うまく機能する QUnit index.html ファイルがあることです (この html を開くと、すべてのテストがパスします)。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>my tests</title>
  <link rel="stylesheet" href="./qunit/lib/qunit-1.11.0.css">
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>

  <!-- core -->
  <script src="./qunit/lib/qunit-1.11.0.js"></script>
  <script src="./qunit/plugin/sinon-1.6.0.js"></script>
  <script src="./qunit/plugin/sinon-qunit-1.0.0.js"></script>

  <!-- dependencies -->  
  <script src="./external/jquery/1.7.2/jquery.min.js"></script>

  <!-- under test  -->
  <script src="./content.js"></script>

  <!-- tests -->
  <script src="./contentTest.js"></script>
</body>
</html>

そのため、js-test-driver と Sinon.js と競合しているようです。関連するすべての Sinon.js テストと含まれている sinon プラグインを削除すると、機能します。sinon 関連のテストを削除しただけでは、まだ失敗します。sinon.js を削除せずにすべてのテストを削除し、"ok(true)" アサートを使用して emty テストを作成すると、同じエラー メッセージ (contentTest.js:60: TypeError: qTest はありません) で失敗します。関数)、ただし、私のテスト ファイルは 10 行だけで構成されています (ファイルが 10 行しかないのに、60 行目にエラーが発生する可能性はありますか?)。

事前に助けてくれてありがとう!

4

1 に答える 1