[Playwright Allure] Xử Lý Tạo Report Riêng Cho Mỗi Lần Chạy

Đoạn hội thoại này xoay quanh việc tích hợp Playwright với Allure để tạo test report 🎯, nhưng gặp vấn đề khi Allure không tự động tạo test report độc lập cho mỗi lần chạy test 😣. Các thành viên trong diễn đàn đã đưa ra giải pháp để xóa dữ liệu cũ trước khi tạo test report mới, cả local lẫn trên GitLab 🚀.
Chi tiết hội thoại
Beverley: Sau khi tích hợp Playwright với Allure và chạy thử local, Allure không tạo test report độc lập mới nhất 😕. Ví dụ: chạy test ‘Login’ thì chỉ thấy kết quả ‘Login’ ✅, nhưng chạy thêm ‘Stock Adjustments’ thì test report gộp cả hai 😤. Để tạo test report độc lập, mình phải xóa thủ công thư mục ‘allure-report’ và ‘allure-results’ trong VS Code ✂️. Mình dùng lệnh: npx allure generate ./allure-results --clean 📜 và npx allure open ./allure-report 📊. Mục tiêu tiếp theo là tích hợp với GitLab, nhưng cần giải quyết vấn đề local trước 🔧. Cảm ơn! 🙏
NZCarnage: Bạn muốn test report độc lập không chứa dữ liệu cũ, hay muốn giữ lịch sử nhưng local không xóa dữ liệu cũ? 🤔 Trên GitLab, môi trường sẽ trống nên không có dữ liệu cũ 🌐, nhưng nếu muốn giữ lịch sử thì cần khôi phục thư mục ‘History’ 📂. Để sửa local, thêm hàm xóa thư mục ‘allure-results’ trong global setup, ví dụ dùng fs.unlink 💾. 💡
const fs = require('fs');
const path = require('path');
const directory = path.join(__dirname, 'allure-results');
fs.readdir(directory, (err, files) => {
if (err) throw err;
for (const file of files) {
fs.unlink(path.join(directory, file), err => {
if (err) throw err;
});
}
});
Beverley: Mình chỉ muốn test report độc lập, không cần dữ liệu cũ 😊. Ví dụ: chạy test ‘A’ thì chỉ thấy kết quả ‘A’ 🎉, chạy ‘B’ thì chỉ thấy ‘B’ 🌟. Cảm ơn @NZCarnage! 🙌
NZCarnage: Tuyệt, local thì xóa ‘allure-results’ đầu mỗi lần chạy trong global setup 👍. Trên GitLab thì mặc định đã trống 🗑️, nhưng có thể thêm bước xóa nếu cần, giới hạn không chạy trong CI ⚙️. 🚀
Beverley: Theo gợi ý thì trong global setup, mình sẽ tạo hàm xóa cả ‘allure-report’ lẫn ‘allure-results’ (vì mình cần xóa cả hai để tạo test report độc lập) 🧹. Hàm này sẽ không chạy trong GitLab CI vì không cần thiết 😎.
Saeed-khan: Mình nghĩ local có thể thêm lệnh clean vào script trong package.json, như: "clean:allure": "rm -rf allure-results allure-report" 🗑️ và "test": "npm run clean:allure && npx playwright test..." ⚡. Chạy npm test sẽ tự động xóa test report cũ trước 🚀.
Beverley: @Saeed-khan Mình đặt code đó ở đâu trong framework Playwright khi chạy local vậy? 🤔
NZCarnage: Thêm vào phần scripts trong package.json 📝. Cách này cũng ổn ✅, nhưng nếu dùng plugin VS Code thì nó sẽ không chạy ⚠️.
Nguồn
Bài viết được dịch từ topic trên Discord: https://discord.com/channels/807756831384403968/1348715875787866184
—
Tham khảo lịch khai giảng khóa K13 – Full stack automation QA với Playwright tại đây nhaaa: https://www.facebook.com/share/p/18XYye8BvN/
