6

Tôi đang phát triển một tiện ích dòng lệnh có rất nhiều cờ. Một lệnh điển hình trông giống như sau:Có tồn tại một tiêu chuẩn được thiết lập để kiểm tra các đối số dòng lệnh không?

mycommand --foo=A --bar=B --jar=C --gnar=D --binks=E 

Trong hầu hết các trường hợp, thông báo 'thành công' được in nhưng tôi vẫn muốn xác minh với các nguồn khác như cơ sở dữ liệu bên ngoài để đảm bảo thành công thực sự.

Tôi bắt đầu tạo các bài kiểm tra tích hợp và tôi không chắc chắn cách tốt nhất để làm điều này. Mối quan tâm chính của tôi là:

  1. Có nhiều kết hợp cờ, làm cách nào để biết kết hợp nào để kiểm tra? Nếu bạn thực hiện phép tính cho hơn 10 cờ có thể được sử dụng cùng nhau ...
  2. Có cần phải kiểm tra hoán vị cờ không?
  3. Cách xây dựng một khung có khả năng tự động hóa các thử nghiệm và sau đó xác minh kết quả.
  4. Cách theo dõi số lượng cờ lớn và cung cấp thứ tự để dễ dàng biết được những kết hợp nào đã được triển khai và những gì đã không được thực hiện.

Ý nghĩ viết thủ công từng trường hợp và xác minh kết quả bằng đơn vị kiểm tra như định dạng khó khăn.

Có ai biết mẫu có thể được sử dụng để tự động hóa loại thử nghiệm này không? Có lẽ ngay cả phần mềm cố gắng giải quyết vấn đề này? Làm thế nào những người làm việc trên các công cụ dòng lệnh GNU kiểm tra phần mềm của họ?

Trả lời

2

Tôi nghĩ điều này rất cụ thể đối với ứng dụng của bạn.

Trước tiên, làm thế nào để bạn xác định sự thành công của việc thực hiện ứng dụng của bạn? Đó có phải là mã kết quả không? Có cái gì đó được in trên bàn điều khiển không?

Đối với câu hỏi 2, nó phụ thuộc cách bạn phân tích các cờ đó trong ứng dụng của bạn. Hầu hết thời gian, thứ tự của lá cờ không quan trọng, nhưng có những trường hợp ở đâu. Tôi hy vọng bạn không cần phải kiểm tra hoán vị cờ, bởi vì nó sẽ thêm rất nhiều trường hợp để kiểm tra.

Trong trường hợp chung, bạn nên phân tích tác động của từng cờ là gì. Có thể là một lá cờ không can thiệp vào những người khác, và sau đó nó chỉ cần được kiểm tra một lần. Đây cũng là trường hợp cho các cờ được sử dụng một mình (ví dụ: --help hoặc --version). Bạn cũng cần phải phân tích những giá trị nào bạn nên kiểm tra cho mỗi cờ. Thông thường, bạn muốn thử từng loại giá trị hợp lệ có thể có và mỗi loại giá trị có thể không hợp lệ.

Tôi nghĩ rằng một tập lệnh bash đơn giản có thể được viết để thực hiện các bài kiểm tra hoặc bất kỳ ngôn ngữ kịch bản nào, như Python. Sử dụng vòng lặp lồng nhau, bạn có thể thử, cho mỗi cờ, giá trị sở hữu, bao gồm các thử nghiệm cho các giá trị không hợp lệ và trường hợp cờ không được đặt. Tôi sẽ tạo ra một ma trận đa chiều về kết quả, cần được phân tích để xem kết quả có phù hợp với những gì mong đợi hay không.

+0

Cảm ơn bạn đã phản hồi. Trong phần lớn các trường hợp, các lệnh tạo ra một thông báo 'thành công', tuy nhiên, một thực thể bên ngoài lệnh được thao tác. Vì vậy, tôi phải làm một số công việc phụ để xác minh (chẳng hạn như truy vấn một cơ sở dữ liệu). Tôi sẽ chơi xung quanh với ý tưởng về các vòng lặp lồng nhau, tuy nhiên, có vẻ như sẽ rất khó để giữ cho bài kiểm tra được tổ chức theo cách đó. – trinth

1

Khi tôi viết ứng dụng (bằng ngôn ngữ kịch bản lệnh), tôi có một hàm phân tích một chuỗi dòng lệnh. Tôi nguồn tập tin mà tôi đang phát triển và kiểm tra đơn vị chức năng trực tiếp hơn là liên quan đến vỏ.

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