-
Notifications
You must be signed in to change notification settings - Fork 9
Project Structure (ADVANCED)
To facilitate improvements and contributions, the xUnit (TestFramework) project is structured into different modules:
-
ConfigModule: This module (
Modules/ConfigModule/) manages the default configurations for the framework. -
PropertyModule: Serving as a superclass to other modules (such as
Assert,Test,Logger, andPublisher), the PropertyModule (Modules/PropertyModule) handles properties and their access levels (private or public). APropertyHolderis anIConfigurableentity that can utilize the ConfigModule to load default configurations. -
LoggerModule: Responsible for logging operations within the framework, the LoggerModule is located in
Modules/LoggerModule/. Its default API is exposed through theModules/LoggerModule/LoggerAPIscript. -
AssertModule: Handling assertions, the AssertModule is situated in
Modules/AssertModule/Internal/Assert, where the assert functions are defined as members of the Assert constructor. The framework incorporates the AssertAPI script found inModules/AssertModule. -
PublisherModule: The PublisherModule, found in
Modules/PublisherModule/, facilitates the publication of test framework results. It acts as an abstraction layer that supports the implementation of multiple publishers. -
TestModule: Responsible for test execution, the TestModule exposes constructors such as
Test,TestSuite, andTestFramework.
By organizing the xUnit (TestFramework) project into these modules, it becomes easier to manage and enhance the functionality of the framework.
Important
It is essential to acknowledge that contributions to the framework can influence its internal mechanisms. However, it is crucial to maintain the integrity of the existing public API that is utilized by the tests during runtime. While additions to the API are acceptable, modifications to the existing API should be avoided.