如何将内部导出到F#中的测试项目?

时间:2015-01-24 00:16:01

标签: c# .net f#

在C#中,您可以使用AssemblyInfo.c中的InternalsVisibleTo属性创建一个测试项目访问项目内部的权限,这样您就可以对项目的部分内容进行单元测试。我想公开。

[assembly: InternalsVisibleTo("MyTestProject")]

我无法在F#中发现等效的解决方案,甚至根本没有发现如何将属性添加到程序集中。是否有解决方案(或等效的解决方法),如果是的话,它是什么?

2 个答案:

答案 0 :(得分:5)

Jeff Mercado获取装配属性的解决方案(我之前从未见过)导致我的问题得到以下解决方案。谢谢杰夫!

module AssemblyInfo

open System.Runtime.CompilerServices

[<assembly: InternalsVisibleTo("MyTestProject")>]
do()

答案 1 :(得分:4)

将其放入您的fsproj文件中:

 <ItemGroup>
   <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
     <_Parameter1>$(AssemblyName).Tests</_Parameter1>
   </AssemblyAttribute>
   <AssemblyAttribute Include="System.Runtime.CompilerServices.InternalsVisibleTo">
     <_Parameter1>DynamicProxyGenAssembly2</_Parameter1>
   </AssemblyAttribute>
 </ItemGroup>

请注意,仅当使用Moq时才需要DynamicProxyGenAssembly2的条目。