2012-06-20 47 views
35

Tôi đã cố gắng sử dụng tùy chọn norecursedirs bên trong setup.cfg để báo cho py.test không thu thập các thử nghiệm từ các thư mục nhất định nhưng có vẻ như nó bỏ qua nó.Làm thế nào để nói với py.test để bỏ qua các thư mục nhất định?

[tool:pytest] 
norecursedirs=lib/third 

Khi tôi chạy py.test Tôi thấy cách kiểm tra từ bên trong lib/third!

+0

Có vẻ như tôi có 'py.test' và' pytest' cả hai bài kiểm tra runnings và là những con quái vật khác nhau. Strange nhưng 'pytest' là cái không thành công bởi vì nó không tải các loại trừ từ' [pytest] '. – sorin

+1

'pytest' là từ logilab. Bạn muốn 'py.test'. – ecatmur

+0

cũng thử làm 'nosecuredirs = lib/third/*' – intelis

Trả lời

14

Tôi giải quyết những bí ẩn: Nếu một phần pytest được tìm thấy tại một trong những tập tin cấu hình có thể (pytest.ini, tox.inisetup.cfg), pytest sẽ không tìm kiếm bất kỳ người khác vì vậy hãy chắc chắn rằng bạn xác định các tùy chọn py.test trong một đơn tập tin.

Tôi khuyên bạn nên sử dụng setup.cfg.

9

norecursedirs sẽ hoạt động. Kiểm tra xem bạn có tệp pytest.ini hoặc tệp setup.cfg nào khác không. Làm thế nào bạn gọi py.test?

+0

Tôi có 'setup.cfg' với đúng' [pytest] 'và norecorsedirs bên trong nhưng nó có vẻ bị bỏ qua, và thay vào đó nó sẽ tìm kiếm tất cả các tệp. – sorin

9

Bạn có thể sử dụng

py.test -k 'not third' 

rằng loại trừ tất cả nội dung thư mục 'ba'.

13

py.test --ignore=somedir làm việc cho tôi

1

Nếu bạn đang sử dụng setup.cfg, bạn phải sử dụng [tool:pytest] theo http://doc.pytest.org/en/latest/example/pythoncollection.html

# nội dung của pytest.ini
# cũng có thể được quy định tại tox. tệp ini hoặc setup.cfg, mặc dù phần
# tên trong tệp setup.cfg phải là "công cụ: pytest" `` `

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