在哪里放置我的xUnit测试用于F#程序集?

Ben*_*jol 3 tdd f# projects-and-solutions xunit.net

我正在研究我的第一个"真正的"F#装配,并试图做正确的事情.

我设法让xUnit工作,但目前我的测试模块在同一个程序集中.这让我感到困扰,因为这意味着我将发布一个程序集,其中近一半的代码(和80%的API)是测试方法.

这样做的"正确"方法是什么?如果我把测试放在另一个组件中,我认为这意味着我必须暴露内部,我宁愿保密.

我知道在C#中有一个测试的朋友机制(如果这是正确的术语),F#中是否存在等价物?

或者,任何人都可以指出我正在"正确"完成这个项目的示例项目吗?

stm*_*max 6

您可以使用InternalsVisibleTo-Attribute将内部结构暴露给其他组件.

http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(VS.100).aspx

编辑

如果您的程序集已签名,您还需要签署好友程序集,并在InternalsVisibleTo属性中提供公钥:

[<assembly: InternalsVisibleTo("ProcessorTests, PublicKey=0024000004800...)")>]
Run Code Online (Sandbox Code Playgroud)