CppTest Python API¶
Extract activity traces from C++ test source comments.
API¶
from lobster.tools.cpptest.cpptest import lobster_cpptest
lobster_cpptest(config: Config)
First, prepare a configuration:
Configuration Dataclass¶
from lobster.tools.cpptest.cpptest import Config, lobster_cpptest
conf = Config(
codebeamer_url="https://codebeamer.example",
kind="req", # or "act" / "imp"
files=["tests"], # dirs/files (.cpp/.cc/.c/.h)
output_file="cpptest_activities.lobster",
)
Config fields (dataclass):
codebeamer_url: str- Base URL used to build requirement links (forms item references in output).kind: KindTypes- Namespace for tracing targets (req/act/imp); influences tag semantics.files: List[str]- File and/or directory roots scanned for extensions.cpp .cc .c .h.output_file: str- Destination.lobsterfile (includes orphan tests merged in).
Stable API Function¶
lobster_cpptest(config: Config) -> NoneRuns end-to-end: parse test files, extract markers, write LOBSTER output.
Example (Scanning Test Directory)¶
from lobster.tools.cpptest.cpptest import Config, lobster_cpptest
conf = Config(
codebeamer_url="https://codebeamer.example",
kind="req",
files=["tests/unit", "tests/integration"],
output_file="test_activities.lobster",
)
lobster_cpptest(conf)
Behavioral Notes¶
Extracts tracing markers with prefix
CB-#from code comments; these become requirement references.Tests without tracing markers are still included in the output.
Each test gets a unique identifier based on filename, function name, and line number.
Tracing relies only on comment markers (no custom field mapping like the codebeamer tool).
Core Goals¶
Extract C++ test cases and convert them to LOBSTER activities.
Include all tests (both traced and untraced) in a single output file.
Control the namespace using the
kindparameter.Track exact file locations and line numbers for each test.
Error Conditions¶
Missing required marker file/dirs →
FileNotFoundError.No matching test files after scan →
ValueError.Unsupported
kindvalue →ValueError(must be one ofreq, act, imp).Invalid config file structure (when using parser) →
KeyError/ValueError.