![]() |
VOOZH | about |
The Ocaramba framework utilizes Sandcastle Help File Builder (SHFB) to generate comprehensive API documentation from source code comments. This documentation provides a structured view of the framework's namespaces, classes, and methods, facilitating easier onboarding and technical reference for automation engineers.
The primary documentation project is Ocaramba.Documentation.shfbproj. It is configured to build a static website representing the API surface of both the core Ocaramba libraries and their dependencies.
VS2013 style for a familiar MSDN-like navigation experience Ocaramba.Documentation/Ocaramba.Documentation.shfbproj42C# to maintain focus on the framework's primary language Ocaramba.Documentation/Ocaramba.Documentation.shfbproj41.NET Core/.NET Standard/.NET 5.0+ to reflect the modern cross-platform nature of the codebase Ocaramba.Documentation/Ocaramba.Documentation.shfbproj7Guid for file naming to prevent issues with long file paths or special characters in class names Ocaramba.Documentation/Ocaramba.Documentation.shfbproj51baseSourceCodeUrl pointing to the GitHub repository to allow users to jump from documentation to the implementation Ocaramba.Documentation/Ocaramba.Documentation.shfbproj33The builder pulls metadata and XML comments from the following functional projects:
OcarambaLite.csproj: The core engine containing driver logic and helpers Ocaramba.Documentation/Ocaramba.Documentation.shfbproj37Ocaramba.csproj: The extended framework layer Ocaramba.Documentation/Ocaramba.Documentation.shfbproj38To keep the documentation clean, specific visibility rules are applied:
InheritedMembers, Protected, and NonBrowsable items to assist developers extending the framework Ocaramba.Documentation/Ocaramba.Documentation.shfbproj68Ocaramba.Logger namespace is hidden by default (isExposed="False"), but the TestLogger class is explicitly marked as visible (isExposed="True") to ensure its logging utilities are documented for end-users while hiding internal logger plumbing Ocaramba.Documentation/Ocaramba.Documentation.shfbproj70-73The following diagram illustrates how source code and configuration files are processed by SHFB to produce the final API Website.
"Documentation Build Process"
Sources: Ocaramba.Documentation/Ocaramba.Documentation.shfbproj36-42 Ocaramba.Documentation/Selenium.shfbproj24-26 Ocaramba.Documentation/ContentLayout.content1-8
The framework includes a specialized project, Selenium.shfbproj, dedicated to documenting external Selenium dependencies. This ensures that when developers browse Ocaramba's API, they have access to the underlying WebDriver documentation.
WebDriver.dll and WebDriver.Support.dll located within the NuGet package cache (specifically targeting version 4.35.0 for .net8.0 and netstandard2.0) Ocaramba.Documentation/Selenium.shfbproj25-26Assembly Binding Redirection for Selenium.Support and Selenium.WebDriver to resolve version mismatches during the documentation build process Ocaramba.Documentation/Ocaramba.Documentation.shfbproj75-83Sources: Ocaramba.Documentation/Selenium.shfbproj24-27 Ocaramba.Documentation/Ocaramba.Documentation.shfbproj74-84
Beyond auto-generated API lists, the documentation includes conceptual topics:
Welcome topic as the default Ocaramba.Documentation/ContentLayout.content1-8This diagram maps the logical documentation structure to the physical files and code namespaces.
"API Documentation Structure"
Sources: Ocaramba.Documentation/ContentLayout.content1-8 Ocaramba.Documentation/Content/Welcome.aml1-17 Ocaramba.Documentation/Ocaramba.Documentation.shfbproj70-73
The documentation is hosted on GitHub Pages via an automated PowerShell script and CI/CD triggers.
The script PublishingApiDocumentationOn_gh-pages.ps1 manages the deployment to the gh-pages branch:
.\Ocaramba.Documentation\Help\ to a staging .\Help directory scripts/PublishingApiDocumentationOn_gh-pages.ps132-36Help.png and Objectivity_logo_avatar.png, ensuring they are correctly placed in the gh-pages branch scripts/PublishingApiDocumentationOn_gh-pages.ps15-9GithubAuthToken, clones the existing gh-pages branch, replaces the content, and pushes the new version scripts/PublishingApiDocumentationOn_gh-pages.ps111-49.zip archive of the documentation using 7z for artifact storage scripts/PublishingApiDocumentationOn_gh-pages.ps156-58EWSoftware.SHFB and EWSoftware.SHFB.NET packages to enable building documentation on build agents without requiring a full Sandcastle installation Ocaramba.Documentation/Ocaramba.Documentation.shfbproj121-124Ocaramba.sln, the Ocaramba.Documentation project is dependent on OcarambaLite and Ocaramba, ensuring the assemblies are built before SHFB attempts to parse them Ocaramba.sln45-50Sources: scripts/PublishingApiDocumentationOn_gh-pages.ps11-58 Ocaramba.Documentation/Ocaramba.Documentation.shfbproj121-124 Ocaramba.sln45-50
Refresh this wiki