2015-02-17 87 views
3

我正在使用Microsoft的TypeScript开发客户端JavaScript库。我想编写一些测试,最好在浏览器中运行它们(而不是通过node.js)。如何使用TypeScript编写浏览器测试

官方TypeScript Samples没有包含测试代码,所以没有指导。

我发现至少有one example组合TypeScript和Mocha,但它运行在Node下。我正在为浏览器开发,所以我宁愿在浏览器中进行测试。

我目前的方法是使用grunt-typescriptgrunt-browserify内联require语句将我的库编译成单个JS文件。然后我将这个和测试文件加载到我的测试运行器中:

<script src="../build/library.js"></script> 
<!-- external test dependencies --> 
<script src="../node_modules/mocha/mocha.js"></script> 
<script src="../node_modules/chai/chai.js"></script> 

<!-- the tests --> 
<script>mocha.setup('bdd')</script> 
<script src="../build/test/my-test.js"></script> 

但是,这完全不起作用。我的测试需要import它正在测试的代码,并且浏览器不知道如何在编译代码中处理结果require语句。我尝试使用requirejs已经全部结束了徒劳。

如何测试TypeScript代码?我希望能够:

  • 运行在浏览器中测试(最好使用MochaChai)。
  • 测试代码复杂到足以让它在同一个项目中导入另一个文件。
  • 包含一些对外部节点模块的依赖关系。
+0

我会修改这个问题,询问如何获得requirejs的工作,并且包含您遇到的具体问题。我在tsUnit中使用了requirejs,并且我还将它与Jasmine一起使用,它的工作正常 - 所以如果你解决了这个问题,我希望你的Mocha/Chai组合也能工作。 – Fenton 2015-02-18 08:13:51

+0

谢谢,史蒂夫。是[这个项目](https://github.com/Steve-Fenton/TypeScriptUtilities)使用Jasmine和require.js引用的那个?我会尝试使用它作为模板。 – danvk 2015-02-18 16:48:21

+0

那个不使用require,虽然它确实使用Jasmine。我在一个商业软件产品上一起使用它们 - 并且会写下你需要的小技巧:https://www.stevefenton.co.uk/Content/Blog/Date/201407/Blog/Combining-TypeScript-Jasmine-And-AMD -With-RequireJS/ – Fenton 2015-02-18 20:40:27

回答

相关问题