1#ifndef YAZE_CLI_AUTOMATION_TEST_GENERATION_API_H
2#define YAZE_CLI_AUTOMATION_TEST_GENERATION_API_H
10#include "absl/status/status.h"
11#include "absl/status/statusor.h"
13#include "nlohmann/json.hpp"
60 std::chrono::steady_clock::time_point
ended_at;
74 bool capture_state =
true);
157 const std::string& bug_description,
158 const std::vector<std::string>& repro_steps,
159 const std::string& expected_behavior,
173 app::editor::Editor* editor,
174 const std::string& fixture_name);
183 const std::string& interface_name,
184 const std::string& mock_name);
210 const std::string& test_code,
211 bool compile_only =
false);
220 const std::string& test_file,
221 const std::string& filter =
"");
245 const std::vector<TestResult>& test_results);
265 const std::string& test_code,
266 const std::vector<std::string>& requirements);
279 const std::string& code_under_test,
280 const std::string& model_name =
"gemini");
289 const std::string& test_code,
290 const std::vector<std::string>& improvement_goals);
302 const std::vector<std::string>& test_files);
311 const std::string& test_file,
312 const std::string& format =
"markdown");
API for automated test generation and execution.
std::string GenerateTestBody(const RecordingSession &session, const GenerationOptions &options) const
absl::Status StartRecording(const std::string &test_name, bool capture_state=true)
Start recording user interactions.
std::string GenerateAssertion(const RecordedInteraction &interaction, TestFramework framework) const
absl::StatusOr< std::string > GenerateTestFromRecording(const RecordingSession &session, const GenerationOptions &options={})
Generate test code from recording.
std::map< std::string, std::vector< std::string > > CheckRequirementsCoverage(const std::string &test_code, const std::vector< std::string > &requirements)
Check if test covers specified requirements.
absl::StatusOr< std::string > ImproveTest(const std::string &test_code, const std::vector< std::string > &improvement_goals)
Use AI to improve existing test.
void ResumeRecording()
Resume paused recording.
GenerationCallback generation_callback_
void SetRecordingCallback(RecordingCallback callback)
Set callback for recording events.
absl::StatusOr< TestResult > ExecuteGeneratedTest(const std::string &test_code, bool compile_only=false)
Execute generated test code.
absl::StatusOr< std::string > GenerateRegressionTest(const std::string &bug_description, const std::vector< std::string > &repro_steps, const std::string &expected_behavior, const GenerationOptions &options={})
Generate regression test from bug report.
absl::StatusOr< std::string > GenerateTestSuite(const TestSpecification &spec, const GenerationOptions &options={})
Generate comprehensive test suite from specification.
std::string GenerateTestHeader(const GenerationOptions &options) const
absl::StatusOr< CoverageReport > GenerateCoverageReport(const std::vector< TestResult > &test_results)
Generate coverage report for tests.
absl::Status CompileTest(const std::string &test_code) const
absl::StatusOr< nlohmann::json > SuggestTestCases(const std::string &code_under_test, const std::string &model_name="gemini")
Use AI model to suggest test cases.
std::vector< std::string > ValidateTestCode(const std::string &test_code)
Validate generated test code.
void AnnotateRecording(const std::string &annotation)
Add annotation to current recording.
absl::StatusOr< std::vector< TestResult > > RunTestFile(const std::string &test_file, const std::string &filter="")
Run existing test file.
absl::StatusOr< std::string > GenerateTestDocumentation(const std::string &test_file, const std::string &format="markdown")
Generate test documentation.
std::function< void(const std::string &progress)> GenerationCallback
absl::StatusOr< RecordingSession > StopRecording()
Stop current recording session.
nlohmann::json OrganizeTestSuites(const std::vector< std::string > &test_files)
Organize tests into suites.
RecordingCallback recording_callback_
absl::StatusOr< std::string > GenerateFixture(app::editor::Editor *editor, const std::string &fixture_name)
Generate test fixture from current editor state.
std::unique_ptr< RecordingSession > current_recording_
absl::StatusOr< std::string > GenerateMock(const std::string &interface_name, const std::string &mock_name)
Generate mock object for testing.
void SetGenerationCallback(GenerationCallback callback)
Set callback for generation progress.
void PauseRecording()
Pause recording temporarily.
std::function< void(const RecordedInteraction &)> RecordingCallback
Coverage report for tested code.
double branch_coverage_percent
double function_coverage_percent
double line_coverage_percent
std::vector< std::string > uncovered_lines
std::vector< std::string > uncovered_branches
std::map< std::string, double > file_coverage
Options for test generation.
bool include_setup_teardown
std::string output_directory
std::string namespace_name
Recorded interaction for test generation.
nlohmann::json parameters
nlohmann::json post_state
std::chrono::steady_clock::time_point timestamp
std::chrono::steady_clock::time_point started_at
std::vector< RecordedInteraction > interactions
std::map< std::string, std::string > metadata
nlohmann::json initial_state
std::chrono::steady_clock::time_point ended_at
nlohmann::json final_state
std::vector< std::string > warnings
std::vector< std::string > failures
nlohmann::json coverage_data
Generate test from specification.
bool include_performance_tests
std::map< std::string, nlohmann::json > custom_cases
std::vector< std::string > methods_to_test
std::string class_under_test