将 F# 程序集的 xUnit 测试放在哪里?
我正在开发我的第一个“真正的”F# 程序集,并尝试把事情做好。
我也设法让 xUnit 工作,但目前我的测试模块位于同一个程序集中。这让我有点困扰,因为这意味着我将交付一个程序集,其中近一半的代码(以及 80% 的 API)是测试方法。
执行此操作的“正确”方法是什么?如果我将测试放在另一个程序集中,我认为这意味着我必须公开我宁愿保密的内部结构。
我知道 C# 中有一个用于测试的友元机制(如果这是正确的术语),F# 中是否有等效的机制?
或者,任何人都可以向我指出一个“正确”完成此操作的示例项目吗?
I'm working on my first 'real' F# assembly, and trying to do things right.
I've managed to get xUnit working too, but currently my test module is inside the same assembly. This bothers me a bit, because it means I'll be shipping an assembly where nearly half the code (and 80% of the API) is test methods.
What is the 'right' way to do this? If I put the tests in another assembly, I think that means I have to expose internals that I'd rather keep private.
I know that in C# there is a friend mechanism for tests (if that's the right terminology), is there an equivalent in F#?
Alternatively, can anyone point me to an example project where this is being done 'properly'?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用InternalsVisibleTo-Attribute 将内部结构公开给其他程序集。
http://msdn.microsoft .com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(VS.100).aspx
编辑
如果您的程序集已签名,您还需要对朋友程序集进行签名,并在 InternalsVisibleTo 属性中提供公钥:
you could use the InternalsVisibleTo-Attribute to expose your internals to some other assembly.
http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute(VS.100).aspx
EDIT
If your assembly is signed, you will also need to sign the Friend assembly, and provide the public key in the InternalsVisibleTo attribute: