Làm cách nào để WebStorm nhận ra các phương thức của Jasmine?


135

Tôi có một dự án node.js có chứa một số thông số kỹ thuật của Jasmine . Các thông số kỹ thuật nằm trong một đặc tả / thư mục con và có phần mở rộng .spec.coffee, theo yêu cầu của nút hoa nhài .

Khi tôi mở một file spec của tôi trong WebStorm IDE, tất cả các cuộc gọi đến beforeEachdescribeitđược hiển thị với màu xanh nguệch ngoạc nhấn mạnh với các tooltip: "chức năng không được giải quyết hoặc phương pháp đó ()". Vì vậy, mặc dù tôi đang sử dụng EAP 3.0 và nó được cho là có một số lượng hỗ trợ của Jasmine , nhưng nó không tự động nhận ra rằng đây là một tệp spec Jasmine.

Tôi đã thử truy cập vào Tệp> Cài đặt> Thư viện JavaScript và thêm Jasmine làm thư viện (chỉ định đường dẫn đến jasmine-2.0.0.rc1.js), sau đó đi đến trang phụ Phạm vi sử dụng và kiểm tra "Jasmine" trong danh sách thả xuống bên cạnh "Dự án", nhưng điều đó không có hiệu quả - các phương thức Jasmine vẫn hiển thị dưới dạng chưa được giải quyết.

Làm cách nào tôi có thể nói với WebStorm rằng tất cả các tệp trong thư mục con cụ thể và / hoặc tất cả các tệp có phần mở rộng .spec.coffee, là các thử nghiệm của Jasmine và có nhận ra API Jasmine mà các thử nghiệm đó đang sử dụng không?


Tôi có cùng một vấn đề trong 3.0 EAP. Đây là lý do tại sao tôi làm việc trong 2.1.5.
Microfed

Bạn nên gửi vấn đề này như một vấn đề tại youtrack.jetbrains.net/issues/WI để các nhà phát triển có thể giải quyết các trường hợp như vậy trong các phiên bản trong tương lai.
CrazyCoder

@Microfed, vì vậy bạn đang nói rằng 2.1.5 có tự động nhận ra các bài kiểm tra của Jasmine không? Đây có phải là một lỗi đã được viết lên?
Joe White

Câu trả lời:


238

Bạn có thể sử dụng sơ khai thư viện JS được xác định trước trong Webstorm / PHPStorm / Idea

  • Mở tệp> Cài đặt ...
  • Chọn Ngôn ngữ & Khung > JavaScript> Thư viện
  • Nhấp vào Tải xuống ...

Cài đặt thư viện JavaScript

  • Chuyển sang sơ khai cộng đồng TypeScript
  • Tìm karma-jasmine (ban đầu dưới tên hoa nhài ) (Nếu điều này không hiệu quả, thay vào đó hãy thử hoa nhài )
  • Nhấp vào Tải xuống và cài đặt

nhập mô tả hình ảnh ở đây

Tôi đang sử dụng thiết lập này với Jasmine 2.0


2
Nó được gọi là karma-jasmine, họ đã thay đổi nó chỉ để giúp chúng tôi tìm thấy nó
Andrzej Rehmann 23/12/14

7
Không làm việc cho tôi. "mô tả", "beforeEach", "nó" vẫn xuất hiện với gạch chân màu xám.
BuildTester1

36
Nếu bạn không sử dụng nghiệp chướng, bạn chỉ cần chọn thư viện 'hoa nhài' để tải xuống. Đó là những gì làm việc cho tôi sau khi thử karma-jasmine
Doug Seelinger

22
Mặc dù tôi đang sử dụng nghiệp chướng, tôi đã phải tải xuống chỉ là hoa nhài để làm cho nó hoạt động. karma-jasmine không hoạt động.
Didier L

3
Bước cuối cùng - khởi động lại IDE
Sava Jcript

30

Trên máy Mac có webstorm 2016.1.1 tôi đã làm như sau:

  1. Mở Tùy chọn (webstorm-> ưu tiên hoặc [lệnh +,])
  2. Chuyển đến thư viện và khung -> javascript -> thư viện
  3. Tải xuống
  4. chọn 'hoa nhài - DefiniteTyped' từ danh sách

Jasmine hỗ trợ thêm vào webstorm


4
Nó hoạt động với tôi trên mac, nhưng tôi cần đóng và khởi động lại WebStorm.
Jim

Tôi đã tải xuống jasminethư viện bằng IntelliJ 2016.3 trên máy Windows và nó đã hoạt động, thậm chí không cần khởi động lại.
Jelle

Tôi cũng đã phải thay đổi "Loại" từ Toàn cầu sang Dự án. Nhấp đúp vào tên thư viện sau khi cài đặt nó, sau đó thay đổi cài đặt "Hiển thị"
providencemac

6

Lưu ý, nếu bạn đang sử dụng Công cụ chất lượng mã như JSHint với WebStorm, việc thêm thư viện jasmin / karma-jasmine toàn cầu sẽ không thoát khỏi các lỗi JSHint.

Bạn cần truy cập các cài đặt JSHint thông qua hệ thống menu của WebStorm (Lang & Frameworks> JavaScript> Công cụ chất lượng mã> JSHint) và nhấp vào hộp kiểm để cho phép nó biết nó đang chạy trong môi trường nào.

Cài đặt JSHint


Jasmine mất tích từ môi trường của tôi. Làm thế nào mà nó xuất hiện trong bạn?
Aseem Bansal

@AseemBansal bạn đang sử dụng phiên bản nào của jshint?
prasanthv

Tôi đang sử dụng phiên bản 2.5.10
Aseem Bansal

4

Sử dụng TypeScript (và Angular2), bạn chỉ cần kích hoạt trình biên dịch TypeScript trong Cài đặt WebStorm ...

Cài đặt> Ngôn ngữ & Cài đặt> TypeScript ...

Trong tiêu đề Trình biên dịch đánh dấu ...

Kích hoạt Trình biên dịch TypeScript ...

(Tôi cũng đã nhấp vào sử dụng radio tsconfig.json)

Phương pháp hoa nhài bây giờ sẽ được công nhận


Vấn đề với giải pháp này là tôi không muốn WebStormbiên dịch TypeScripttừ khi tôi đang sử dụng Webpack.
theblang

Thật thú vị, nếu tôi thực hiện new projectnhư một Angular CLIdự án thì nó sẽ nhận ra chúng. Tôi không chắc có gì khác biệt.
theblang

Tôi sử dụng gulp để dịch mã TypeScript của mình, nếu bạn thiết lập tsconfig.json chính xác thì TypeScript sẽ KHÔNG tạo các tệp đầu ra, nó sẽ chỉ xác nhận chúng trong IDE.
danday74

Đã làm cho tôi. Đừng quên đánh dấu tsconfig.json
Michael Kornelakis 7/10/2016

Điều này gần như làm việc mà không có lỗi cho tôi. Tuy nhiên, khi tôi làm điều này, tôi nhận được kết quả lỗi này từ tab trình biên dịch typecript trong WebStorm: Error: Error: Parse tsconfig error [{"messageText": "Tùy chọn trình biên dịch không xác định 'baseUrl'.", "Category": 1, "code ": 5023}, {" messageText ":" Tùy chọn trình biên dịch không xác định 'lib'. "," Category ": 1," code ": 5023}, {" messageText ":" Tùy chọn trình biên dịch không xác định 'typeRoots'. "," ": 1," mã ": 5023}]
Nikola Schou

4

Điều này cũng có thể được gây ra bởi sự phụ thuộc bị thiếu (nếu bạn đang phát triển trong TypeScript).

Hãy chắc chắn rằng bạn đã cài đặt @types/jasmine

npm install --save-dev @types/jasmine

2

Nếu bạn gặp phải vấn đề này sau khi đã tạo một dự án bằng cách sử dụng Angular CLIthì hãy đến File -> Settings -> Languages & Frameworks -> JavaScript -> Librariesvà kiểm tra {your-project-name}/node_modules.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.