當使用因緣的JavaScript測試庫(姓Testacular)使用Rails在一起,應該在哪裏測試文件和嘲笑的數據去放在哪裏?Karma + Rails:文件結構?
讓他們進入/ assets /似乎很奇怪,因爲我們實際上並不想爲用戶提供服務。 (但我猜如果他們根本就沒有預編譯,那麼這不是一個實際的問題,對吧?)
當使用因緣的JavaScript測試庫(姓Testacular)使用Rails在一起,應該在哪裏測試文件和嘲笑的數據去放在哪裏?Karma + Rails:文件結構?
讓他們進入/ assets /似乎很奇怪,因爲我們實際上並不想爲用戶提供服務。 (但我猜如果他們根本就沒有預編譯,那麼這不是一個實際的問題,對吧?)
我們結束了測試和嘲笑的數據在Rails應用程序的spec
文件夾下,並配置Karma導入它們以及我們的測試代碼從app/assets
。
適用於我們。其他想法是受歡迎的。
我們config/karma.conf.js
文件:
basePath = '../';
files = [
JASMINE,
JASMINE_ADAPTER,
//libs
'vendor/assets/javascripts/angular/angular.js',
'vendor/assets/javascripts/angular/angular-*.js',
'vendor/assets/javascripts/jquery-1.9.1.min.js',
'vendor/assets/javascripts/underscore-min.js',
'vendor/assets/javascripts/angular-strap/angular-strap.min.js',
'vendor/assets/javascripts/angular-ui/angular-ui.js',
'vendor/assets/javascripts/angular-bootstrap/ui-bootstrap-0.2.0.min.js',
//our app!
'app/assets/javascripts/<our-mini-app>/**',
// and our tests
'spec/javascripts/<our-mini-app>/lib/angular/angular-mocks.js',
'spec/javascripts/<our-mini-app>/unit/*.coffee',
// mocked data
'spec/javascripts/<our-mini-app>/mocked-data/<data-file>.js.coffee',
];
autoWatch = true;
browsers = 'PhantomJS'.split(' ')
preprocessors = {
'**/*.coffee': 'coffee'
}
通過這個帖子:https://groups.google.com/forum/#!topic/angular/Mg8YjKWbEJ8
我的東西嘗試,看起來像這樣:
// list of files/patterns to load in the browser
files: [
'http://localhost:3000/assets/application.js',
'spec/javascripts/*_spec.coffee',
{
pattern: 'app/assets/javascripts/*.{js,coffee}',
watched: true,
included: false,
served: false
}
],
這手錶的應用程序的js文件,但沒有按不包括它們或提供它們,而是包括由rails和sprocket提供的application.js。
我也一直在擺弄https://github.com/lucaong/sprockets-chain,但還沒有找到一種方法來使用requirejs來包含js文件(例如jquery-rails或angularjs-rails)。
我發現這個項目很有幫助,作爲一個起點。 https://github.com/monterail/rails-angular-karma-example。這由作者on their blog解釋。
這是一個帶有angular.js和karma測試運行器的示例rails應用程序。
我創建了一個文件夾/規格/角度,我把每一個測試文件,有/規格/角/ E2E,/規格/角/單位,等等...但你是怎麼配置的karma.conf.js?我不確定代理屬性是否正確:'proxies = {'':'http:// localhost:3000 /' };'我即使是一個簡單的測試也有錯誤,它就像是javascript不包括測試來源。 – p1nox 2013-06-04 15:23:14
PD:我正在處理遺留代碼,它使用application.js.erb作爲所有javascript文件的清單,甚至是角度應用程序,在我的karma.conf.js中有文件= ANGLEAR_SCENARIO, ANGULAR_SCENARIO_ADAPTER, '。 ./../app/assets/javascripts/application.js', '*/* Spec.js' ]' – p1nox 2013-06-04 15:54:27
順便說一句,我測試,如果一個名爲 「StSelector」 模塊是存在的,它的工作原理(HTTP: //www.yearofmoo.com/2013/01/full-spectrum-testing-with-angularjs-and-testacular.html#testing-modules),我得到'中途:測試模塊StSelector模塊:應該註冊失敗 \t錯誤:沒有模塊:StSelector' – p1nox 2013-06-04 16:51:54