2015-02-17 83 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

回答

相關問題