Test automation (Part 2) - Sử dụng travis service

bài trước mình đã giới thiệu tới mọi người tổng quan và khái niệm về auto test CI/CD. Để hiện thực cho khái niệm CI ở bài trước thì mình xin giới thiệu tiếp ở bài này một dịch vụ một server thực hiện cho việc tự động tạo môi trường và test. Hiện nay ở các công ty thường cài riêng một server và cấu hình Jenkin, TFS, Hudson phục vụ cho CI, và đương nhiên việc tự cấu hình các open source như vậy khá là khó khăn và tốn nhiều chi phí. Và theo như mình biết thì hiện có Travis CI rất thuận tiện cho những công ty, cho các team hay các sinh viên làm bài tập nhóm mà không muốn bỏ nhiều công sức để cấu hình một server riêng. Hiện tại với Travis CI mọi công việc cài đặt phức tạp đã được thực hiện sẵn cho bạn. Travis-CI có hỗ trợ tích hợp với github. Bạn chỉ cần tạo và config project github một chút là xong ngay.

Tính năng của Travis CI

  • Tích hợp ~ 30 ngôn ngữ lập trình.
  • Tích hợp với github.
  • Hỗ trợ build và test.
  • Cung cấp feedback qua email.

Quy trình làm việc

  1. Đầu tiên, một developer sẽ thực hiện một lệnh git push để đẩy code ở local lên server Github.
  2. Tiếp đó Github sẽ thông báo cho travis là "Có code thay đổi kìa, test rồi báo cáo lại cho tôi nhé"
  3. Travis thực hiện build và test code.
  4. Kết thúc quá trình build và test, Travis trả kết quả thành công hay có lỗi về cho Github và gửi mail thông báo cho tài khoản Travis đó.

Cấu hình và Demo

  • Hãy chuẩn bị một source code với ngôn ngữ bất kỳ và đã có unit test, ở đây mình demo với một project viết bằng ruby on rails. Tiếp theo là một tài khoản của travis, các bạn có thể sử dụng bản trả phí(enterprise) tại đây hoặc dùng bản free tại đây, bản trả phí có giá khá cao từ 70-500$ nên mình sẽ demo trên bản free.

  • Vào ravis-ci.org, bấm “Sign in with Github” góc trên bên phải. Xem hình bên dưới

  • Sau khi đăng nhập, bấm vào dấu + bên trái để tạo một dịch vụ đến project của bạn. Hình bên dưới

  • Nhấp vào project muốn test để nó chuyển sang màu xanh là ok. Chờ một chút để Travis tích hợp vào project bên github. Hình bên dưới

  • Tiếp theo, bạn vào project trên github, kiểm tra xem nó đã kết nối được Travis hay chưa?. Bấm Settings -> Integrations & services. Nếu không thấy TravisCI thì bấm Add Service, thêm TravisCI vào. Và sau đó bạn có thể bấm “Test service” để thử xem Github và Travis đã kết nối với nhau chưa. Hình bên dưới Có kết quả như bình trên "Okay, the test payload is on its way." là thành công.

  • Bước tiếp theo là bạn tạo một file .travis.yml và commit lên github là service có thể chạy. Lưu ý với file cấu hình này thì mỗi ngôn ngữ sẽ có cách cấu hình khác nhau, hình bên dưới là cấu hình của mình với project là ruby on rails. Hình trên là khai báo liên quan đến ngôn ngữ, phiên bản, môi trường, phạm vi test và tạo kịch bản chạy như chúng ta mong muốn. Với commit đầu tiên lên github và đã kiểm tra kết quả bên travis thì có kết quả như hình bên dưới. Giao diện trên có 2 phần chính là thông tin của lần auto test hiện tại và bên dưới là Log trong quá trình chạy unit test. Kết quá có màu xanh lá cây như trên là thông báo trạng thái test thành công.

  • Trạng thái chạy test của travis có 3 màu, màu xanh lá cây là thành công, màu vàng là đang chạy và màu đỏ là thất bại. Hình bên dưới