【问题标题】:Unit testing c# code in a ScriptSharp project在 ScriptSharp 项目中对 c# 代码进行单元测试
【发布时间】:2011-11-12 13:52:39
【问题描述】:

我正在使用 ScriptSharp 创建 RIA 应用程序。 除了一些奇怪的东西外,效果很好。

但是,使用 Firebug 查找和修复问题并不是很方便。

由于 scriptsharp 还提供了一个 Dll,我希望使用 Nunit 使用单独的测试项目来测试我的代码的某些部分。

出现的问题是生成的dll引用mscorlib 0.7导致测试项目中与mscorlib 4冲突。

一个简单的解决方案是创建第二个纯 C# 项目并复制代码文件。但是用相同的代码库维护2个项目......

很好奇是否有其他方法可以做到这一点。有人吗?

编辑: Christian Dalager 提出的解决方案有效。

小事是 ScriptSharp 在 mscorlib 中重新定义了 System.Diagnostics。不再有 Debug.Assert/Writeline。但现在几乎不再需要它了。

【问题讨论】:

    标签: c# nunit script#


    【解决方案1】:

    您可以尝试使用assembly binding redirects

    您可以在您的测试项目的 app.config 中添加类似的内容。 尚未测试此特定配置,因此您需要对其进行调整。

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v1.0.3705">
         <dependentAssembly>
            <assemblyIdentity name="mscorlib" publicKeyToken="b77a5c561934e089" culture="neutral"/>
            <bindingRedirect oldVersion="0.7.0.0" newVersion="4.0.0.0"/>
         </dependentAssembly>
        </assemblyBinding>
    </runtime> 
    

    【讨论】:

    • 它似乎成功了! Resharper 没有意识到这一点并一直在抱怨,但这是一个小问题。还有一种方法可以以相同的方式重定向命名空间吗?
    • 我认为你需要编写代码来摆脱那个问题。你不能告诉 resharper 以某种方式忽略那个吗?
    • Resharper 很容易闭嘴。
    • @lboshuizen,如果您认为这个答案确实回答了您的问题,您应该点击绿色的勾号接受它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-26
    • 1970-01-01
    • 2016-02-12
    • 2023-02-24
    相关资源
    最近更新 更多