commit initial

This commit is contained in:
baishi
2026-05-30 07:59:28 +08:00
commit cbefad339f
39 changed files with 7736 additions and 0 deletions

View File

@@ -0,0 +1,58 @@
using Xunit;
using Xunit.Abstractions;
namespace TinyCC.E2ETests;
public class E2ETests : IAsyncLifetime
{
private readonly ITestOutputHelper _output;
private readonly E2ETestRunner _runner;
public E2ETests(ITestOutputHelper output)
{
_output = output;
_runner = new E2ETestRunner();
}
public Task InitializeAsync() => Task.CompletedTask;
public Task DisposeAsync()
{
_runner.Cleanup();
return Task.CompletedTask;
}
[Theory]
[MemberData(nameof(GetBasicTestCases))]
public async Task BasicFeature_ShouldCompileAndRun(TestCase testCase)
{
// Act
var result = await _runner.RunTestAsync(testCase);
// Assert
_output.WriteLine($"测试: {testCase.Name}");
_output.WriteLine($"源代码:\n{testCase.SourceCode}");
_output.WriteLine($"结果: {(result.Passed ? "" : "")}");
if (!result.Passed)
{
_output.WriteLine($"错误: {result.ErrorMessage}");
_output.WriteLine($"实际退出码: {result.ActualExitCode}");
if (result.ActualOutput != null)
{
_output.WriteLine($"实际输出: {result.ActualOutput}");
}
}
Assert.True(result.Passed, result.ErrorMessage);
}
public static TheoryData<TestCase> GetBasicTestCases()
{
var data = new TheoryData<TestCase>();
foreach (var testCase in TestCases.GetBasicTests())
{
data.Add(testCase);
}
return data;
}
}