2016-02-09 20 views
8

Các kiểm tra Mocha của tôi hoạt động tốt, nhưng khi tôi thêm mô-đun mới (và kiểm tra), mocha ngừng chạy tất cả các tệp thử nghiệm của tôi và hiện chỉ chạy thử nghiệm mới.Mocha chỉ chạy một tệp thử nghiệm

kịch bản thử nghiệm của tôi:

env NODE_PATH=$NODE_PATH:$PWD/src mocha --recursive --compilers js:babel-core/register src/**/*.test.js --require babel-polyfill 

Dự án của tôi được cấu trúc như thế này:

/src 
    /components 
    /component-name 
     index.js 
     component.js 
     component-name.test.js 
     style.scss 
    /util 
    /module-name 
     index.js 
     module-name.test.js 
    /some-other-module 
    index.js 
    some-other-module.test.js 

tôi đã có một số bài kiểm tra trong /components/util và mọi thứ đều hoạt động tốt, nhưng khi tôi đặt một module vào /src (như /some-other-module) với tệp .test.js trong đó, Mocha chỉ chạy tệp thử nghiệm đó và không có tệp nào khác.

Trả lời

13

Đặt dấu nháy đơn xung quanh mô hình bạn vượt qua để Mocha để ngăn chặn nó được giải thích bởi shell của bạn: 'src/**/*.test.js'

Điều gì xảy ra, không có dấu ngoặc kép, vỏ của bạn cố gắng để mở rộng mô hình đó và thành công. Kết quả của việc mở rộng là src/some-other-module/some-other-module.test.js và đây là những gì được truyền cho Mocha.

Trước khi bạn tạo tệp đó, trình bao vẫn cố gắng mở rộng mẫu nhưng không thành công và để nguyên mẫu. Vì vậy, Mocha có src/**/*.test.js, bản thân Mocha được hiểu là một kết quả.

Trong trường hợp bạn tự hỏi, trong Bash, trừ khi tùy chọn globstar được bật, ** tương đương với *.

+2

Cảm ơn bạn. Điều đó hoạt động hoàn hảo. Tôi giả sử '**' sẽ làm việc vì nó hoạt động trong trình bao của tôi (ZShell), nhưng có vẻ như các kịch bản lệnh 'package.json' được chạy với Bash. – SimpleJ

+0

Cách đặt mẫu trong cấu hình 'mocha'? – Green

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