Open Manu343726 opened 1 year ago
If I manually generate the sections it works as intended:
SECTION("Verify our parsing algorithm works with the most relevant words in the vocabulary of a programmer")
{
for(const auto word : {"foo", "bar", "quux"})
{
SECTION(fmt::format("works with '{}'", word))
{
const std::string_view word = GENERATE("foo", "bar", "quux");
Approvals::verify(parseKeyword(word)); // Now works, one approval per word
}
}
}
Per Catch2 documentation:
I looked into the Catch2 integration and it seems like the Catch2 API does not include generator information as part of the sector:
In fact, if you look at the
Catch::SectionInfo
type it only includes name and source location. I'm no expert on the Catch2 internals but at first glance, I would say Catch2 generators are handled more like part of the body of a section rather than variants of the parent section (Like generated tests cases in other frameworks).The result of this behavior is that if you run an approval inside a section with a generator, the approval is uniquely registered for the section rather than each generated variant of the section, resulting in approval failures following the execution of the different variants of the section: