diff --git a/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.cpp b/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.cpp index b563c1846b..a9d0e15781 100644 --- a/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.cpp +++ b/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.cpp @@ -10,6 +10,8 @@ * */ +#include + #include #include #include @@ -247,11 +249,17 @@ namespace TestImpact , m_testEnumerator(AZStd::make_unique(maxConcurrentRuns)) , m_instrumentedTestRunner(AZStd::make_unique(maxConcurrentRuns)) , m_testRunner(AZStd::make_unique(maxConcurrentRuns)) + , m_artifactDir(artifactDir) { } TestEngine::~TestEngine() = default; + void TestEngine::DeleteArtifactXmls() const + { + DeleteFiles(m_artifactDir, "*.xml"); + } + AZStd::pair> TestEngine::UpdateEnumerationCache( const AZStd::vector& testTargets, Policy::ExecutionFailure executionFailurePolicy, @@ -283,6 +291,8 @@ namespace TestImpact AZStd::optional globalTimeout, AZStd::optional callback) { + DeleteArtifactXmls(); + TestEngineJobMap engineJobs; const auto jobInfos = m_testJobInfoGenerator->GenerateRegularTestRunJobInfos(testTargets); @@ -308,6 +318,8 @@ namespace TestImpact AZStd::optional globalTimeout, AZStd::optional callback) { + DeleteArtifactXmls(); + TestEngineJobMap engineJobs; const auto jobInfos = m_testJobInfoGenerator->GenerateInstrumentedTestRunJobInfos(testTargets, CoverageLevel::Source); diff --git a/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.h b/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.h index 83f57f00ef..7d16f352f3 100644 --- a/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.h +++ b/Code/Tools/TestImpactFramework/Runtime/Code/Source/TestEngine/TestImpactTestEngine.h @@ -118,10 +118,14 @@ namespace TestImpact AZStd::optional callback); private: + //! Cleans up the artifacts directory of any artifacts from previous runs. + void DeleteArtifactXmls() const; + size_t m_maxConcurrentRuns = 0; AZStd::unique_ptr m_testJobInfoGenerator; AZStd::unique_ptr m_testEnumerator; AZStd::unique_ptr m_instrumentedTestRunner; AZStd::unique_ptr m_testRunner; + RepoPath m_artifactDir; }; } // namespace TestImpact