如何使用nunit对延迟标志组件进行单元测试

Kha*_*'am 9 .net nunit

我们有一个项目,所有程序集都是延迟签名的.开发机器设置为使用sn.exe工具跳过验证:

sn.exe -Vr *,PUBLIC_KEY_TOKEN_HERE
Run Code Online (Sandbox Code Playgroud)

如果我们使用nunit(GUI版本)测试这些程序集,由于延迟签名,测试将无效(所有测试都失败).但如果重新签署这些程序集,则测试有效.我们都知道要重新签署程序集,我们需要私有公钥对文件(例如mycompany.snk).我们认为将mycompany.snk文件提供给所有开发人员并不是一个好习惯.

是否有任何解决方案,以便每个开发人员可以在不重新签名或不需要mycompany.snk文件的情况下对其程序集进行单元测试?

Joh*_*ery 3

您是否有机会在 64 位版本的 Windows 上进行开发?前段时间我们遇到了类似的问题,我们对程序集进行了延迟签名,但在单元测试期间它们没有正确加载。结果发现问题是因为我们是在 64 位 Windows 上开发的。原来有两个sn.exe程序,一个是32位的,一个是64位的。(64 位版本位于 Windows SDK 中 32 位可执行文件的 bin 目录下的“x64”目录中——我目前不在开发机器上,抱歉,所以我无法给您确切的路径记忆)。我们所做的是使用 32 位版本使用“sn -Vr”命令,然后使用 64 位版本运行相同的命令,一切正常。