2015-06-12 19 views
7

Tôi đang phát triển ứng dụng đầu cuối. Và tôi tự hỏi làm thế nào có thể kiểm tra giao diện người dùng thiết bị đầu cuối được thực hiện với ncurses. Có ai có kinh nghiệm với loại thử nghiệm này không?Thử nghiệm Python ncurses

  • Cho đến nay bức ảnh đẹp nhất của tôi sẽ được thử nghiệm ứng dụng với capturing stdout và so sánh nó với những gì nó nên được. Nhưng tôi lo ngại rằng tôi không bao giờ có thể tạo trường hợp tương đương cho mọi kích thước thiết bị đầu cuối, mã màu văn bản cho (256bit, 24bit), v.v.

  • Một cách để kiểm tra sẽ là mô phỏng bàn phím nhưng cách Tôi kiểm tra behaivour trực quan?

tôi CLUELESS obout vấn đề này ...

Trả lời

1

So sánh sản lượng màn hình rất khó, vì kernel cập nhật chỉ những phần thay đổi của màn hình, sử dụng con trỏ-địa chỉ và các phương pháp khác. Thay vào đó, việc so sánh nội dung của màn hình được biết đến để ncurses tại các điểm khác nhau trong thời gian là cách tiếp cận tốt nhất.

Bạn có thể tạo màn hình kết xuất bằng cách sử dụng instr để nhận văn bản (nhưng bỏ qua các thuộc tính như màu). Giao diện Python để ncurses cũng có inch (nhưng mà giả nhân vật là 8-bit)

Nó sẽ được tốt đẹp để sử dụng putwin, nhưng điều đó (cho đến gần đây) tiết kiệm cửa sổ trong nhị phân dưới dạng. Sắp tới ncurses6 sử dụng một text dump, có thể được diff'd. Thay đổi không hiển thị đối với người gọi (vì putwin/getwin luôn xử lý định dạng tệp dưới dạng bí mật) và về nguyên tắc có thể được bật trong bản dựng ncurse5. Đối với điều đó, bạn có thể sẽ phải xây dựng ncurses của riêng bạn.

+0

Waw thanx cho nguồn lực lớn của các liên kết! Đây là những gì tôi đang tìm kiếm, một cái gì đó mà bạn có thể đọc từ cửa sổ đặc biệt cordinate để kiểm tra char đơn giản và vị trí văn bản, màu sắc cũng có ưu tiên thứ cấp để instr sẽ là con đường để đi. Thanx lần nữa! – urosjarc

1

Chương trình bạn có thể muốn kiểm tra là tập lệnh TCL có tên là Expect. Nó được thiết kế để tự động tương tác dựa trên văn bản.

mỗi Wikipedia:

[Expect] được sử dụng để tự động kiểm soát các ứng dụng tương tác như telnet, ftp, passwd, fsck, rlogin, tip, ssh, và những người khác. Mong đợi sử dụng thiết bị đầu cuối giả (Unix) hoặc giả lập một giao diện điều khiển (Windows), khởi động chương trình đích, và sau đó giao tiếp với nó, giống như con người, thông qua giao diện thiết bị đầu cuối hoặc giao diện điều khiển.

Tôi tưởng tượng rằng bạn có thể thiết lập tập lệnh Mong đợi để chạy qua tương tác chuẩn và báo cáo mọi sự cố tương tác trong quá trình thực hiện. Tôi nghi ngờ bất kỳ chương trình nào có thể kiểm tra tính thẩm mỹ (nghĩa là nó trông như thế nào đối với mắt, vv ..) nhưng bạn có thể kiểm tra xem giao diện có vừa với màn hình hay không và các cửa sổ khác nhau không chồng chéo lên nhau, v.v. bằng cách thêm một trình trang trí cho các cuộc gọi hàm PyCurses theo dõi kích thước của các phần khác nhau và báo cáo bất kỳ sự trùng lặp hoặc vấn đề nào.

Để biết thêm về trang trí Python, kiểm tra bài viết này: Understanding Python Decorators in 12 Easy Steps!

+0

Thanx cho obout thông tin Mong đợi, tôi đã không nhận thức được obout lib này, và nó có bindings python quá! :) – urosjarc

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