Javascript Plovr外部不';使用测试模板选项时不加载

Javascript Plovr外部不';使用测试模板选项时不加载,javascript,google-closure,plovr,Javascript,Google Closure,Plovr,我正在使用plovr为使用googleclosure库的JavaScript代码运行单元测试。在我需要运行一些异步测试之前,我的设置工作正常。我发现我需要使用plovr的测试模板选项替换默认的org.plovr.test.soy文件 我更新了test.soy文件,以便可以使用goog.testing.ContinuationTestCase: <body> <script src="{$baseJsUrl}"></script> //This scr

我正在使用
plovr
为使用googleclosure库的JavaScript代码运行单元测试。在我需要运行一些异步测试之前,我的设置工作正常。我发现我需要使用plovr的
测试模板
选项替换默认的
org.plovr.test.soy
文件

我更新了test.soy文件,以便可以使用
goog.testing.ContinuationTestCase

<body>
  <script src="{$baseJsUrl}"></script>

  //This script tag was added.
  <script>
    goog.require('goog.testing.jsunit');
    goog.require('goog.testing.ContinuationTestCase');
  </script>

  <script src="{$testJsUrl}"></script>
</body>
当我的配置中没有测试模板时,我的外部程序加载良好,但使用
ContinuationTestCase
的单元测试失败

当我添加测试模板选项时,我使用
ContinuationTestCase
的单元测试通过,但许多其他测试失败,因为没有加载外部程序

下面是让我相信外部设备不工作的错误:

12:25:39.398  Start
12:25:39.400  testAddLine : PASSED
12:25:39.402  testCreateUndoCommand : PASSED
12:25:39.403  testUpdateLocalData : PASSED
12:25:39.404  testUpdateServerData : PASSED
12:25:39.404  Done

JS ERROR: Uncaught ReferenceError: Kinetic is not defined
URL: http://localhost:9810/input/peders-app/src/peder/smartPoint.js
Line: 143
JS ERROR: Uncaught TypeError: Cannot read property 'prototype' of undefined
URL: http://localhost:9810/input/peders-app/src/peder/modifyLine.js
Line: 24
JS ERROR: Uncaught ReferenceError: Kinetic is not defined
URL: http://localhost:9810/input/peders-app/src/peder/shapes/line.js
Line: 154

有人知道为什么使用自定义测试模板会阻止加载我的外部程序吗?

事实证明,由于某种原因,在运行测试时从未加载外部程序。调用外部函数的错误并没有导致测试失败。我仍然不知道为什么使用
测试模板
选项会导致错误无法通过测试,但幸运的是我找到了一个解决方法

我只是简单地将我的外部对象直接添加到plovr jar中。要做到这一点,只需将extern添加到plovr.jar内的
externs
文件夹中。然后更新plovr jar顶层的externs_manifest.txt,以包含您添加的任何文件。这将使plovr将您的外部程序视为默认外部程序

这可能不是解决这个问题的“正确”方法,但它完成了任务

12:25:39.398  Start
12:25:39.400  testAddLine : PASSED
12:25:39.402  testCreateUndoCommand : PASSED
12:25:39.403  testUpdateLocalData : PASSED
12:25:39.404  testUpdateServerData : PASSED
12:25:39.404  Done

JS ERROR: Uncaught ReferenceError: Kinetic is not defined
URL: http://localhost:9810/input/peders-app/src/peder/smartPoint.js
Line: 143
JS ERROR: Uncaught TypeError: Cannot read property 'prototype' of undefined
URL: http://localhost:9810/input/peders-app/src/peder/modifyLine.js
Line: 24
JS ERROR: Uncaught ReferenceError: Kinetic is not defined
URL: http://localhost:9810/input/peders-app/src/peder/shapes/line.js
Line: 154