将 F# 程序集的 xUnit 测试放在哪里?

发布于 2024-08-24 15:20:49 字数 291 浏览 4 评论 0原文

我正在开发我的第一个“真正的”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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

缱绻入梦 2024-08-31 15:20:49

您可以使用InternalsVisibleTo-Attribute 将内部结构公开给其他程序集。

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

编辑

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

[<assembly: InternalsVisibleTo("ProcessorTests, PublicKey=0024000004800...)")>]

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:

[<assembly: InternalsVisibleTo("ProcessorTests, PublicKey=0024000004800...)")>]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文