将 Moles 与 XUnit 一起使用 - 错误的 dll 版本
我正在尝试设置 Moles 以在我们的单元测试中使用。我们正在使用 xunit,因此我使用
Moles 附带的 Xunit 扩展 (Microsoft.Moles.Framework.Xunit
)。然而,当我们运行 Xunit 1.7 时,Moles 抱怨我没有运行版本 1.6.1.1521(带有 FileLoadException
)。
鼹鼠手册(第 28 页)确实说:
xUnit.net 版本:
<块引用>1.5.0.1479(对于其他 xUnit.net 版本,请从源重新编译属性)
这就是我陷入困境的地方 - 这个 xunit 扩展的源代码在某处可用吗?或者我必须使用 Moles 需要的 xunit 的特定版本?
I'm trying to set up Moles to use in our unit testing. We are using xunit, so I am using
the Xunit extension that comes with moles (Microsoft.Moles.Framework.Xunit
). However, as we are running Xunit 1.7, Moles is complaining that I am not running Version 1.6.1.1521 (with a FileLoadException
).
The Moles Manual (page 28) does say:
xUnit.net Version:
1.5.0.1479 (for other xUnit.net versions, recompile the attribute from sources)
This is where I get stuck - is the source code for this xunit extension available somewhere? Or will I have to use the specific version of xunit that Moles requires?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您不能在
moles.runner.exe.config
中定义程序集绑定重定向吗?Can't you define a assembly binding redirect in the
moles.runner.exe.config
?如果您必须重新编译,那么您可以这样做。我寻找 Moles 源代码,但在任何地方都找不到。然后我尝试反汇编Microsoft.Moles.Xunit.dll,我意识到该属性只有几行长。
MoledAttribute 源代码:
您应该创建一个新的类库并添加对您想要的任何版本的 xunit.dll 的引用。它甚至应该适用于 1.8.0.1545,因为我没有注意到 XUnit.BeforeAfterTestAttribute 有任何更改,这是唯一的依赖项。
If you have to recompile then you can do it. I looked for Moles source code but I couldn't find it anywhere. Then I tried to disassemble Microsoft.Moles.Xunit.dll and I realized that the attribute is just few lines long.
MoledAttribute source code:
You should create a new class library and add reference to your xunit.dll of any version you want. It should even work with 1.8.0.1545 as I haven't noticed any changes to XUnit.BeforeAfterTestAttribute which is the only depencency.
虽然 proxon 的答案对于完成我的任务非常有帮助,但请允许我在进一步调查时提出一个更好的答案(希望能帮助其他人解决这个问题)。源代码位于 C:\Program Files\Microsoft Moles\Documentation\moles.samples.zip 中。当然,与 proxon 反编译的代码几乎相同。
您还可以在其中找到 NUnit 和 MbUnit 包装器。
While proxon's answer was very helpful for getting my task done, allow me to present a better answer I found as I investigated further (to hopefully help others coming across this problem). The source code is found in
C:\Program Files\Microsoft Moles\Documentation\moles.samples.zip
. Pretty much identical to the code that proxon decompiled, of course.You can also find the NUnit and MbUnit wrappers in there.