You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在每次测试运行前自动覆盖Allure结果文件夹?

解决Allure报告残留旧测试结果的问题

一、命令行层面快速清理

每次测试运行前,直接清空Allure结果目录是最直接的方式,根据操作系统选择对应命令:

  • Linux/macOS:
    rm -rf allure-results/*
    
  • Windows(CMD):
    del /q/s allure-results\*
    
  • Windows(PowerShell):
    Remove-Item allure-results\* -Recurse -Force
    

如果用Maven管理项目,可直接结合clean目标,自动清理默认路径下的结果文件:

mvn clean test allure:report

二、在测试前置方法中通过代码实现自动清理

完全可以通过测试框架的前置钩子方法,在测试执行前自动清空结果目录,以下是主流框架的实现示例:

Python + Pytest

使用会话级别的自动执行fixture,在所有测试启动前清理目录:

import os
import shutil
import pytest

@pytest.fixture(scope="session", autouse=True)
def clear_allure_results():
    allure_dir = "allure-results"
    if os.path.exists(allure_dir):
        # 递归删除目录内所有内容
        for item in os.listdir(allure_dir):
            item_path = os.path.join(allure_dir, item)
            if os.path.isfile(item_path) or os.path.islink(item_path):
                os.unlink(item_path)
            elif os.path.isdir(item_path):
                shutil.rmtree(item_path)
    else:
        os.makedirs(allure_dir)
  • scope="session"确保该fixture仅在测试会话启动时执行一次
  • autouse=True无需手动调用,自动触发

Java + TestNG

通过@BeforeSuite注解的方法,在测试套件运行前执行清理:

import java.io.File;
import org.testng.annotations.BeforeSuite;

public class AllurePreCleanup {
    @BeforeSuite
    public void clearAllureResults() {
        File resultsDir = new File("allure-results");
        if (resultsDir.exists()) {
            deleteDir(resultsDir);
        }
        resultsDir.mkdirs();
    }

    private void deleteDir(File dir) {
        File[] files = dir.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    deleteDir(file);
                } else {
                    file.delete();
                }
            }
        }
        dir.delete();
    }
}
  • @BeforeSuite保证在整个测试套件的所有测试用例执行前仅运行一次
  • 递归删除目录内所有文件和子目录后,重建空目录

注意事项

  • 确认Allure结果目录的路径是否与项目配置一致,若自定义了路径(如通过allure.results.directory属性),需同步修改代码或命令中的路径
  • 代码清理时需确保程序拥有对应目录的读写权限
  • CI/CD环境中更推荐使用命令行清理,步骤更直观且便于维护

内容的提问来源于stack exchange,提问作者Dinesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:00:34