2014-05-13 25 views
17

Tôi đã thiết lập Idea Web Storm và có thể chạy Karma Kiểm tra thành công nếu thông số thử nghiệm được xác định trong karam.conf.js.Chạy thử nghiệm Karma Jasmine duy nhất trong Web Storm qua Trình đơn Nhấp chuột phải

Tuy nhiên, nếu tôi bấm chuột phải vào tập tin JS và chọn 'Run MySpec.js', tôi nhận được lỗi này:

/usr/bin/node MyTestSpec.js 

/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4 
describe('Activate wallet controller --', function() { 
^ 
ReferenceError: describe is not defined 
    at Object.<anonymous> (/Users/dev/WebstormProjects/demow/test/MyTestSpec.js:4:1) 
    at Module._compile (module.js:456:26) 
    at Object.Module._extensions..js (module.js:474:10) 
    at Module.load (module.js:356:32) 
    at Function.Module._load (module.js:312:12) 
    at Function.Module.runMain (module.js:497:10) 
    at startup (node.js:119:16) 
    at node.js:901:3 

Process finished with exit code 8 

Có lẽ nó không thể chạy thử nghiệm JS theo cách này.

Đây là config trong WebStorm: enter image description here

Các cấu hình KT liên kết đến tập tin karma.conf.js hoạt động OK như tôi đã đề cập.

Bất kỳ trợ giúp nào được đánh giá cao.

+0

Tại sao bạn sử dụng cấu hình gỡ lỗi nút thay vì cấu hình nghiệp? –

+0

Vì vậy, hoàn toàn không có cách nào để chạy chỉ một thử nghiệm như (https://youtrack.jetbrains.com/issue/WEB-10067)? Nếu tôi đang gỡ lỗi một thử nghiệm, tôi muốn chạy thử nghiệm đó, không phải toàn bộ bộ phần mềm. Tôi cho rằng đây là một quy trình công việc rất phổ biến? – David

+1

@David Đó là mục đích của [tập trung kiểm tra] (http://jasmine.github.io/edge/focused_specs.html), đó là đủ tốt như xa như tôi đang quan tâm ... – rixo

Trả lời

1

Bạn không thể chạy thử nghiệm nghiệp vụ theo cách này - các mô-đun bắt buộc không được tải. Bạn đang cố gắng làm gì - chạy tệp thử nghiệm riêng lẻ? Không có cách nào để vượt qua một file spec nghiệp trực tiếp - xem https://github.com/karma-runner/karma/issues/553

Nếu bạn muốn sử dụng cấu hình chạy Node.js để chạy thử nghiệm nghiệp, các thông số đúng sẽ là như sau:

  • Javascript file:/usr/local/bin/nghiệp

  • thông số ứng dụng: bắt đầu karma.conf.js

+1

Đồng ý điều này dường như không thể. Chạy chúng thông qua những gì được cấu hình trong karma.conf.js hoạt động tốt. Sẽ tốt hơn nếu chỉ chạy một bộ đơn nhanh mà không cần phải chỉnh sửa tệp karma.conf.js. – JamesC

12

tôi không có s một WebStorm-specifc olution cho bạn - Tuy nhiên, nếu bạn muốn chỉ đơn giản có thể chỉ chạy thử nghiệm hoa nhài nhất định thay vì tất cả trong số họ, điều này có thể thông qua sử dụng "focused specs"

Về cơ bản, nếu bạn thay đổi describe-fdescribe hoặc it-fit , hoa nhài sẽ chỉ chạy các thông số với tiền tố f và bỏ qua tất cả các thông số khác.

Dưới đây là một ví dụ:

fdescribe('Spec1', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

describe('Spec2', function() { 

    it('should do something', function() { 
     ... 
    }); 
}); 

Nếu bạn chạy thử nghiệm hoa nhài trong hồ sơ này, tất cả it s trong khối Spec1fdescribe sẽ được chạy.

Vì vậy, nếu bạn có thể nhận WebStorm để chạy tất cả thông số kỹ thuật của bạn, bạn có thể sử dụng fdescribefit để tập trung thời gian vào những người duy nhất cụ thể.

Chỉ cần cẩn thận không để cam kết mã của bạn với fitfdescribe vẫn ở trong đó, hoặc bạn vô tình có thể gây ra máy chủ CI của bạn để bỏ chạy hầu hết các thông số kỹ thuật của bạn :)

+0

Tôi đã thêm tiền thưởng một tuần trước đây, đây chính xác là những gì tôi đã sử dụng sau khi nghiên cứu thêm. – David

+0

đó cũng là nghiệp 'ddescribe', cho bất kỳ ai quan tâm – David

+1

Tôi thấy nó khá ngớ ngẩn khi cần phải chọc mã thay vì chỉ có một tùy chọn' --grep' tất cả cùng ... Có thực sự không có cách nào khác nhưng để tinker với kiểm tra và đảm bảo không thêm 'git add''? –

0

Đối với một dự án angular2, sao chép karma.conf .js và src/test.ts tệp tới các tệp có tên là karma.single.conf.js và src/test.single.ts.

Chỉnh sửa karma.single.conf. Thay đổi 2 địa điểm tham chiếu src/test.ts thành src/test.single.ts (tệp và pattens).

Trong thử nghiệm.single.ts thay đổi

let context = require.context('./', true, /\.spec\.ts/); 

để regex cho các tập tin thử nghiệm hoặc các tập tin bạn muốn kiểm tra

let context = require.context('./', true, /data\.service\.spec\.ts/); 

Sau đó run-> Sửa Configurations tạo mục tiêu Karma và thay đổi tập tin cấu hình để nghiệp chướng tập tin. single.conf.js

Các vấn đề liên quan