feat(ci): Add GitHub Actions workflows for test automation and status badges
Add comprehensive test automation setup with GitHub Actions: - Create test.yml for running tests on main/develop branches - Add pr-test.yml for PR validation with test results comments - Add update-badges.yml for dynamic test status badge updates - Configure code coverage reporting with Codecov integration Documentation: - Add BADGE_SETUP.md with instructions for configuring test status badges - Add WORKFLOWS_GUIDE.md explaining CI/CD workflow setup - Update README.md with build and test status badges Test Framework: - Configure test project to use .NET 9.0 - Set up test coverage reporting with coverlet - Add integration tests with WireMock for API mocking - Add unit tests for configuration and HTTP client components - Document testing strategy in TestingStrategy.md Build: - Add Dockerfile.test for containerized testing - Update .gitignore for test artifacts - Configure test dependencies in VRCAuthProxy.Tests.csproj This change enables automated testing on PRs and branches, with visual status indicators and detailed test results in PR comments.
This commit is contained in:
parent
23b5a504b5
commit
319f1071bf
18 changed files with 939 additions and 12 deletions
45
Tests/Helpers/TestSetup.cs
Normal file
45
Tests/Helpers/TestSetup.cs
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
using System.Net;
|
||||
using WireMock.Server;
|
||||
|
||||
namespace VRCAuthProxy.Tests.Helpers
|
||||
{
|
||||
public class TestSetup : IDisposable
|
||||
{
|
||||
public WireMockServer MockVRChatApi { get; private set; }
|
||||
|
||||
public TestSetup()
|
||||
{
|
||||
// Start WireMock server to mock VRChat API
|
||||
MockVRChatApi = WireMockServer.Start();
|
||||
}
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
MockVRChatApi?.Dispose();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Creates a test configuration with mock accounts
|
||||
/// </summary>
|
||||
public static Config CreateTestConfig()
|
||||
{
|
||||
var config = new Config();
|
||||
config.Accounts = new List<ConfigAccount>
|
||||
{
|
||||
new ConfigAccount
|
||||
{
|
||||
username = "testuser1",
|
||||
password = "testpassword1",
|
||||
totpSecret = "TESTSECRET1"
|
||||
},
|
||||
new ConfigAccount
|
||||
{
|
||||
username = "testuser2",
|
||||
password = "testpassword2"
|
||||
}
|
||||
};
|
||||
|
||||
return config;
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue