roslyn-sdk
roslyn-sdk copied to clipboard
Tests should be allowed to be run with empty TestState.Sources
Currently this scenario fails with:
Assert.IsTrue failed. expected 'TestState.Sources' to be non-empty
My use case is testing a generator where I only need to supply an additional file. For now, I have to add the following as a workaround:
TestState =
{
Sources =
{
string.Empty,
}
}
We already allow Sources to be empty if the test includes a generated document:
https://github.com/dotnet/roslyn-sdk/blob/5f6ffda5efd6198836c038e1ab07cd3b0aba77a7/src/Microsoft.CodeAnalysis.Testing/Microsoft.CodeAnalysis.Analyzer.Testing/AnalyzerTest%601.cs#L190-L194
It might be fine to remove this check. I'm not aware of any case where it's caught a test bug.
Ah, I was using the generator testing you done somewhere where there is a #define WRITE_EXPECTED that adds (or writes) the generated code to disk.
So, with the first test run there wasn't GeneratedSources. That is probably why I hit this assert.
That's the same way I've hit this assert 😄