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