TestableIO / System.IO.Abstractions

Just like System.Web.Abstractions, but for System.IO. Yay for testable IO access!
http://www.nuget.org/packages/System.IO.Abstractions
MIT License
1.51k stars 254 forks source link

Microsoft Fakes does not generate Fakes namespace for System.IO.Abstractions interfaces #1073

Open RoyRosenberg opened 9 months ago

RoyRosenberg commented 9 months ago

Try to generate MS Fakes Stubs for all interfaces under System.IO.Abstractions without success.

To Reproduce Steps to reproduce the behavior:

  1. Create MS Test Project, add System.IO.Abstractions NuGet
  2. On System.IO.Abstractions.dll right-click and choose Add Fakes Assebmly.
  3. Build
  4. View FileSystemMockDemo.Fakes.dll under FakesAssemblies folder

Expected behavior All Stub interfaces should be under System.IO.Abstractions.Fakes namepsace.

Additional context I use VS 2022 Enterprise Edition I also tried to remove the Shims generation

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"  Diagnostic="true" Verbosity="Noisy">
  <Assembly Name="System.IO.Abstractions" Version="20.0.0.0"/>
  <ShimGeneration>
    <Clear />
  </ShimGeneration>
</Fakes>

or any other option like:

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/"  Diagnostic="true" Verbosity="Noisy">
  <Assembly Name="System.IO.Abstractions" Version="20.0.0.0"/>
  <StubGeneration>
    <Clear />
    <Add Interfaces="true"/>
  </StubGeneration>
  <ShimGeneration>
    <Clear />
  </ShimGeneration>
</Fakes>

Did anyone tried that, there is no documentation on that

fgreinacher commented 9 months ago

Thanks for raising this. I don't have any experience with Microsoft Fakes, but I'll leave this open to see if the community can help. Maybe also consider posting it on StackOverflow or the likes to reach a broader audience.