2011-06-18 24 views
88

Tôi muốn bắt đầu viết các bài kiểm tra đơn vị cho mã Python của tôi và khung py.test nghe có vẻ giống như đặt cược tốt hơn so với gói đính kèm unittest của Python. Vì vậy, tôi đã thêm thư mục "kiểm tra" vào dự án của tôi và thêm test_sample.py vào thư mục đó. Bây giờ tôi muốn cấu hình PyCharm để chạy tất cả các bài kiểm tra trong thư mục "tests" của tôi.Làm cách nào để cấu hình PyCharm để chạy thử nghiệm py.test?

PyCharm bị cáo buộc là supports py.test trong nhân tố thử nghiệm của nó. Bạn được cho là có thể create a run/debug configuration để chạy thử nghiệm của mình và PyCharm bị cáo buộc có số "create configuration" dialog box specifically for py.test. Nhưng đó là mức độ hoàn chỉnh của tài liệu của họ về chủ đề này, và tôi không thể tìm thấy hộp thoại bị cáo buộc này ở bất cứ đâu.

Nếu tôi nhấp chuột phải vào thư mục trong cửa sổ Công cụ dự án, tôi là supposed để xem mục menu "Tạo < tên >", nhưng mục menu duy nhất bắt đầu bằng "Tạo" là "Tạo cấu hình chạy". Được rồi, có thể tài liệu chỉ là sai và "Tạo cấu hình chạy" có âm thanh đầy hứa hẹn. Thật không may, chỉ có hai mục trong menu con của nó là "Unittests in C: \ mypath ..." và "Doctests in C: \ mypath ...", cả hai đều không áp dụng - Tôi đang sử dụng không unittest cũng như doctest. Không có mục trình đơn cho py.test.

Nếu tôi mở test_sample.py và nhấp chuột phải vào cửa sổ trình chỉnh sửa, tôi sẽ nhận được các mục menu "Tạo < tên" > "có" Tạo "Hủy bỏ trong test_sa ...'...", tiếp theo là "Chạy" Unittests trong test_sa ... '"và" Debug' Unittests trong test_sa ... '". Vì vậy, một lần nữa, đó là tất cả cụ thể cho khuôn khổ unittest; không có gì cho py.test.

Nếu tôi thử các mục menu có nội dung "unittest", tôi nhận được hộp thoại có các tùy chọn cho "Tên", "Loại", hộp nhóm "Kiểm tra" với "Thư mục" và "Mẫu" và "Tập lệnh "và" Lớp "và" Chức năng ", v.v. Điều này nghe có vẻ giống như những gì được ghi là hộp thoại để thêm configuration for Python Unit Test và không giống như tùy chọn" Tên "và" Thử nghiệm để chạy "và" Từ khóa "được cho là hiển thị trong hộp thoại configuration for py.test. Không có gì bên trong hộp thoại để chuyển đổi khung kiểm tra mà tôi đang thêm vào.

Tôi đang sử dụng PyCharm 1.5.2 trên Windows với Python 3.1.3 và pytest 2.0.3. Tôi có thể chạy thành công py.test trên các thử nghiệm của tôi từ dòng lệnh, vì vậy nó không phải là một cái gì đó đơn giản như pytest không được cài đặt đúng cách.

Làm cách nào để định cấu hình PyCharm để chạy thử nghiệm py.test của tôi?

Trả lời

139

Vui lòng chuyển đến Tệp | Cài đặt | Công cụ | Công cụ tích hợp Python và thay đổi Á hậu thử nghiệm mặc định thành py.test. Sau đó, bạn sẽ nhận được tùy chọn py.test để tạo các thử nghiệm thay vì các phép thử không nhất thiết.

+0

Hah! Không biết làm thế nào tôi bỏ lỡ điều đó. Tuy nhiên, chỉ có một nửa công việc: nếu tôi nhấp chuột phải vào thư mục trong cửa sổ Công cụ dự án, nó sẽ cho tôi một tùy chọn để tạo các tài liệu, chứ không phải py.tests. (Tôi sẽ viết một báo cáo lỗi.) Nhưng nó hoạt động nếu tôi nhấp chuột phải vào trình chỉnh sửa và sau đó thay đổi "Tập lệnh:" thành tên thư mục. –

+0

Cảm ơn! Tôi không bao giờ có thể nhớ được thiết lập này ở đâu! – Inti

+3

Cũng nhớ đánh dấu thư mục nguồn của bạn là "nguồn gốc": http://www.jetbrains.com/pycharm/webhelp/content-root.html – Inti

13

Tôi nghĩ bạn cần sử dụng mục Run/Debug Configuration trên thanh công cụ. Nhấp vào nó và 'Chỉnh sửa cấu hình' (hoặc cách khác sử dụng mục menu Run-> Edit Configurations). Trong phần 'Mặc định' trong ngăn bên trái có một mục 'py.test' mà tôi nghĩ là những gì bạn muốn.

Tôi cũng thấy rằng hướng dẫn không khớp với giao diện người dùng cho điều này. Hy vọng tôi đã hiểu được vấn đề một cách chính xác và giúp.

+3

Trang "Mặc định> py.test" đã không thực sự cho tôi bất kỳ cách nào để tạo cấu hình. Nhưng nếu tôi vào hộp thoại Edit Configurations, nhấp vào nút "+" trên thanh công cụ, chọn "py.test" và đặt "Working directory" vào thư mục chứa các bài kiểm tra của tôi, đã tạo cấu hình để chạy thử nghiệm của tôi. Vì vậy, +1 để chỉ cho tôi một phần hữu ích của chương trình. Tuy nhiên, tôi sẽ đưa ra câu trả lời được chấp nhận cho @yole, vì tôi nghĩ việc thay đổi mặc định thành py.test là một giải pháp tốt hơn - nó sẽ cho phép tôi chạy tập tin hiện tại và những thứ tương tự. –

+0

@JoeWhite Vui lòng thêm nó làm câu trả lời vì nó hữu ích –

5

Tài liệu kém phải chắc chắn. Khi bạn thêm cấu hình mới từ mặc định, bạn sẽ ở trong lĩnh vực chạy tập lệnh "/ Applications/PyCharm CE.app/Contents/helpers/pycharm/pytestrunner.py". Nó không được ghi lại và có ý tưởng riêng về các đối số dòng lệnh.

Bạn có thể:

  1. Cố gắng chơi xung quanh, đảo ngược kịch bản, và xem nếu bạn nào đó có thể nhận được py.kiểm tra để chấp nhận đối số. Có thể đấy; nó không có trong nửa giờ đầu cho tôi.
  2. Chỉ cần chạy "py.test * .py" từ bảng điều khiển.

Thật kỳ lạ, bạn sẽ thấy khó tìm thấy bất kỳ cuộc thảo luận nào vì JetBrains thực hiện tốt công việc đánh bom các thuật toán của Google bằng các trang của riêng nó.

0

Với thiết lập trăn đặc biệt của Conda bao gồm cài đặt pip cho py.test cộng với việc sử dụng addin Specs (tùy chọn --spec) (cho Rspec như ngôn ngữ tóm tắt kiểm tra tốt đẹp), tôi phải làm;

1.Edit các py.test mặc định để bao gồm tùy chọn = --spec, có nghĩa là sử dụng plugin: https://github.com/pchomik/pytest-spec

2.Create mới cấu hình thử nghiệm, sử dụng py.test. Thay đổi trình thông dịch python của nó để sử dụng ~/anaconda/envs/sự lựa chọn thông dịch viên của bạn, ví dụ py27 cho tên của tôi.

3.Xóa cấu hình thử nghiệm 'hủy gửi'.

4.Bây giờ cấu hình thử nghiệm mặc định là py.test với đầu ra kiểu Rspec đáng yêu của tôi. Tôi thích nó! Cảm ơn mọi người!

p.s. Jetbrains' doc trên configs chạy/debug là ở đây: https://www.jetbrains.com/help/pycharm/2016.1/run-debug-configuration-py-test.html?search=py.test

1

tìm chủ đề này khi tôi nhấn cùng một câu hỏi và tìm ra giải pháp phiên bản pycharm: 2017/01/02 vào 'Preferences' -> 'Tools' -> " Python tích hợp Công cụ" và thiết lập các Á hậu kiểm tra mặc định từ bảng điều khiển phía bên phải như py.test giải quyết vấn đề của tôi

+0

Nó sẽ hoạt động, nhưng sau đó bạn phải nhấp chuột phải vào tên tệp tập lệnh thử nghiệm trong cửa sổ Dự án. Nếu bạn nhấp chuột phải vào khu vực biên tập tập tin của cùng một kịch bản thử nghiệm thay vào đó, nó vẫn cho thấy công cụ mặc định cũ (Unittests) không may. Điều này gây phiền toái vì tôi không thể chỉ định hàm riêng lẻ mà tôi muốn kiểm tra. –

4

PyCharm 2017,3

  1. Preference -> Tools -> Python integrated Tools - Chọn py.test như Default test runner.
  2. Nếu bạn sử dụng Django Preference -> Languages&Frameworks -> Django - Đặt đánh dấu trên Do not use Django Test runner
  3. Xóa tất cả các bài kiểm tra runned trước từ Run/Debug configuration, nếu không kiểm tra sẽ được runned với cấu hình đó.
  4. Để đặt một số đối số bổ sung mặc định, hãy cập nhật cấu hình mặc định py.test. Run/Debug Configuration -> Defaults -> Python tests -> py.test -> Additional Arguments
+2

Trong PyCharm 2017.3.2, ngay cả sau khi tôi đặt py.test làm mặc định, khi tôi nhấp chuột phải vào dự án trong bảng Project và chọn 'New => Python File', danh sách thả xuống' Kind: 'chỉ cung cấp: Python tập tin, kiểm tra đơn vị, Python stub, không Pytest. Tôi đã xem xét tất cả các vị trí được đề cập trong các chủ đề ở trên. Tôi đang thiếu gì? –

+0

Tệp Python, Kiểm tra đơn vị, Python stub - chúng là các tệp python, với một số dữ liệu được xác định trước, bạn có thể thêm dữ liệu của riêng mình, đọc chủ đề này https://www.jetbrains.com/help/pycharm/creating-and-editing-file -templates.html. Nhưng điều này không có hiệu lực khi chạy thử nghiệm py.test, bạn có thể tạo một tệp python và nó sẽ hoạt động. Trong chủ đề này, chúng ta sẽ thảo luận cách cấu hình tính năng này https://www.jetbrains.com/help/pycharm/running-tests.html để chạy py.test. –