Mocha cố gắng tìm tệp thử nghiệm theo test
theo mặc định, làm cách nào để chỉ định một thư mục khác, ví dụ: server-test
?Làm cách nào để chỉ định thư mục kiểm tra cho mocha?
Trả lời
Dưới đây là một cách, nếu bạn có thư mục con trong thư mục thử nghiệm của mình, ví dụ:
/test
/test/server-test
/test/other-test
Sau đó, trong linux bạn có thể sử dụng lệnh find để liệt kê tất cả * .js file đệ quy và vượt qua nó để mocha:
mocha $(find test -name '*.js')
hoặc chỉ sử dụng '--recursive' như tôi giải thích dưới đây –
Vì vậy, nói cách khác' mocha' không có tùy chọn để thiết lập cấu trúc thư mục mong muốn trong cấu hình? – Green
người dùng ứng dụng $ mocha $ (tìm các bài kiểm tra -name '* .js') -bash: mocha: không tìm thấy lệnh; Nhận được lỗi này. – lft93ryt
Điều này dường như không có hỗ trợ "dễ dàng" nào để thay đổi thư mục kiểm tra.
Tuy nhiên, có thể bạn nên xem this issue, liên quan đến câu hỏi của bạn.
Không sử dụng -g hoặc tùy chọn --grep, pattern đó hoạt động trên tên của test bên trong nó(), không phải là hệ thống tập tin. Các tài liệu hiện hành là gây hiểu lầm và/hoặc hoàn toàn sai liên quan đến điều này. Để giới hạn toàn bộ lệnh tới một phần của hệ thống tập tin, bạn có thể truyền một mẫu làm đối số cuối cùng (không phải là một cờ).
Ví dụ, lệnh này sẽ thiết lập phóng của bạn để spec nhưng sẽ chỉ kiểm tra tập tin js ngay bên trong thư mục máy chủ thử nghiệm:
mocha --reporter spec server-test/*.js
Lệnh này sẽ làm tương tự như trên, cộng với nó sẽ chỉ chạy trường hợp thử nghiệm nơi nó() chuỗi/định nghĩa của một bài kiểm tra bắt đầu với "Fnord:":
mocha --reporter spec --grep "Fnord:" server-test/*.js
tôi đang trên Windows 7 sử dụng v0.10.0 Node.js và mocha v1.8.2 và NPM v1. 2,14. Tôi chỉ cố gắng lấy mocha để sử dụng thử nghiệm/đơn vị đường để tìm các thử nghiệm của tôi, Sau khi chi tiêu lâu dài và thử một số thứ tôi đã hạ cánh,
Sử dụng tùy chọn "test/unit/*. Js" làm việc trên cửa sổ. Vì lý do chính đáng mà cửa sổ trình bao không mở rộng các ký tự đại diện như unixen.
Tuy nhiên, việc sử dụng "test/unit" không hoạt động, không có mẫu tệp. ví dụ: "mocha test/unit" chạy tất cả các tệp được tìm thấy trong thư mục test/unit.
Điều này chỉ chạy một tệp thư mục làm kiểm tra nhưng bạn có thể chuyển nhiều tên thư mục dưới dạng tham số.
Ngoài ra để chạy một tệp thử nghiệm duy nhất, bạn có thể chỉ định đường dẫn đầy đủ và tên tệp. ví dụ: "Thử nghiệm mocha/đơn vị/mytest1.js"
Tôi thực sự thiết lập trong package.json cho NPM "kịch bản": { "test": "thử nghiệm mocha/đơn vị" },
Vì vậy mà ' thử nghiệm npm 'chạy thử nghiệm đơn vị của tôi.
Kể từ hôm nay, người ta có thể sử dụng tùy chọn '--recursive' như sau:' mocha --recursive "some_dir" ' – superjos
Sử dụng' node_modules \ .bin \ mocha "test \ unit \ *. Js" 'hoạt động trên Windows . Ngoài ra 'node_modules \ .bin \ mocha" ** \ *. Js "' hoạt động (trường hợp thực sự của tôi). Nhưng tôi đang tìm cách loại trừ thư mục _node_modules_. (Tôi cũng sử dụng gulpfile.js nhưng đôi khi tôi cần chạy thử nghiệm trực tiếp với mocha) –
Sử dụng này:
mocha server-test
Hoặc nếu bạn có thư mục con sử dụng này:
mocha "server-test/**/*.js"
Lưu ý việc sử dụng dấu ngoặc kép. Nếu bạn bỏ qua chúng, bạn có thể không chạy thử nghiệm trong thư mục con.
Điều này không hiệu quả đối với tôi. Nếu tôi muốn làm điều đó theo cách này tôi phải làm 'mocha test/server-test' – jonnie
Vấn đề báo giá kép đã cho tôi nhiều lứa tuổi! Cảm ơn vì đã cứu độ tỉnh táo của tôi. Hét ra cho mọi người đọc điều này để trả thêm tiền cho những dấu nháy kép đó. – ctrlplusb
Trong trường hợp của tôi, tôi đã sử dụng 'mocha ./**/*. Test.js' (vì vậy tôi có thể colocate tệp thử nghiệm với tệp mô-đun). Mẫu đã ngừng hoạt động cho tôi khi tôi thêm tệp kiểm tra ở cấp độ khác trong phân cấp tệp so với phần còn lại của bài kiểm tra và chỉ tìm thấy một tệp bóng lẻ và không phải tá tệp khác cùng cấp trong hệ thống phân cấp . Gói trong báo giá cố định nó. – Stoutie
Nếu bạn muốn làm điều đó bằng cách vẫn chỉ chạy mocha
trên dòng lệnh, nhưng muốn chạy thử nghiệm trong một thư mục ./server-tests
thay vì ./test
, tạo ra một tập tin tại ./test/mocha.opts
chỉ này trong file:
server-tests
Nếu bạn muốn chạy tất cả mọi thứ trong thư mục đó và thư mục con, đưa điều này vào test/mocha.opts
server-tests
--recursive
mocha.opts
là những lập luận được thông qua năm qua l lệnh Ine, do đó, làm cho dòng đầu tiên chỉ là thư mục bạn muốn thay đổi các bài kiểm tra quá sẽ chuyển hướng từ ./test/
Đây là tùy chọn có ít ma sát nhất và phải là câu trả lời được chấp nhận IMHO –
Đây là trình tiết kiệm thời gian. –
Tôi đang sử dụng một trong các tấm nồi hơi và nó ở sau dòng, có thể là do cửa sổ, bạn có thể vui lòng kiểm tra once.node ./node_modules/mocha/bin/mocha $ (tìm api -name '* -test.js') --compilers js: babel-core/đăng ký – kobe
Tôi đã gặp sự cố này ngay bây giờ và giải quyết nó bằng cách xóa tùy chọn --recursive
(mà tôi đã đặt) và sử dụng cùng cấu trúc gợi ý ở trên:
mochify "test/unit/**/*.js"
này chạy tất cả các xét nghiệm trong tất cả các thư mục dưới /test/unit/
đối với tôi trong khi bỏ qua các thư mục khác trong /test/
Nếu bạn đang sử dụng nodejs
, trong package.json
dưới scripts
- Đối
global (-g)
cài đặt của bạn:"test": "mocha server-test"
hoặc"test": "mocha server-test/**/*.js"
cho các tài liệu phụ - Đối
project
cài đặt:"test": "node_modules/mocha/bin/mocha server-test"
hoặc"test": "node_modules/mocha/bin/mocha server-test/**/*.js"
cho các tài liệu phụ
Sau đó chỉ cần chạy thử nghiệm một cách bình thường như npm test
Tôi thấy rằng 'npm run mocha './test/*. spec.js! (~)" 'bỏ qua đối số glob, nhưng' node_modules/.bin/mocha "./test/*. spec.js! (~) "' không. – ironchicken
@ironchicken để chuyển đối số đến từ việc sử dụng "npm run" - như trong 'npm run mocha - yourArgs' – Hamsterrific
Như đã đề cập bởi @superjos trong commen ts sử dụng
mocha --recursive "some_dir"
Chạy tất cả các file trong test_directory
bao gồm cả thư mục con phù hợp với test.js
find ./parent_test_directory -name '*test.js' | xargs mocha -R spec
hoặc sử dụng --recursive
switch
mocha --recursive test_directory/
- 1. Làm cách nào để kiểm tra mã AngularJS bằng Mocha?
- 2. Kiểm tra vòng lặp Mocha?
- 3. Cách chỉ định thư mục cho NDK_MODULE_PATH
- 4. Cách kiểm tra lời hứa với Mocha
- 5. Node.JS kiểm tra DOM với Mocha?
- 6. Jasmine (mocha) lồng nhau "nó" kiểm tra
- 7. Làm cách nào để kiểm tra ứng dụng Express được phân cụm với Mocha?
- 8. Cách kiểm tra chỉ mục trong Oracle
- 9. Chỉ định thư mục làm việc cho popen
- 10. Làm thế nào tôi có thể kiểm tra các lỗi không xác định trong mocha?
- 11. cách kiểm tra trình khách http của node.js bằng mocha?
- 12. Kiểm tra lỗi dự kiến trong Mocha
- 13. Kiểm tra Mocha với Yeoman và PhantomJS
- 14. Sử dụng Grunt.js để chạy kiểm tra mocha
- 15. Làm cách nào để chỉ định địa chỉ IP với trình kiểm tra Django?
- 16. Tôi làm cách nào để Rebar chạy Kiểm tra Chung trong thư mục phát hành?
- 17. chỉ định kiểm tra NUnit để chạy
- 18. ASP.NET MVC Làm cách nào để chỉ định thư mục nào các trang Xem nằm trong?
- 19. Làm cách nào để chỉ kiểm tra một hàm chuẩn?
- 20. Cách kiểm tra thư mục để kiểm tra xem tệp mới có được thêm vào không?
- 21. Làm cách nào để kiểm tra xem thư mục có trống trong ANT không?
- 22. Làm cách nào để kiểm tra 500.html trong thư mục phát triển env?
- 23. Cách sử dụng mod_Rewrite để kiểm tra nhiều thư mục cho một tệp tĩnh
- 24. Eclipse: Chỉ định nhiều thư mục res như chỉ định nhiều thư mục src
- 25. Làm cách nào để kiểm tra trạng thái xây dựng chỉ mục trên Oracle 11?
- 26. Kiểm tra tập tin/thư mục cho phép truy cập
- 27. Kiểm tra chuỗi cho tên thư mục hợp lệ
- 28. Làm cách nào để kiểm tra xem tệp có nằm trong thư mục đã cho hay không, trong PowerShell?
- 29. Làm cách nào để bạn chỉ định tham số POST trong kiểm tra Rails?
- 30. Kiểm tra xem hàm có gọi hàm khác bằng Mocha
Trong khi không phải 100% câu trả lời cho câu hỏi của bạn, hãy xem http://jaketrent.com/post/run-single-mocha-test/ - Tôi đến đây để tìm cách chạy một bộ thử nghiệm cụ thể và chương trình này bạn có thể sử dụng '.only' và' .skip' để quản lý các thử nghiệm nào bạn đang chạy. Quan trọng trong quá trình phát triển một tính năng cụ thể khi bạn không muốn đợi toàn bộ bộ thử nghiệm chạy mọi lúc. –