代码之家  ›  专栏  ›  技术社区  ›  Santiago Cepas

多语言测试框架

  •  7
  • Santiago Cepas  · 技术社区  · 17 年前

    您建议我使用哪种测试工具?

    9 回复  |  直到 17 年前
        1
  •  7
  •   Rorick    17 年前

    有趣的问题。。

    我认为,您可以使用针对Java(最有可能是JUnit)和.NET的xUnit实现。但是您的测试代码必须用第三种语言编写,可能是简单的DSL,用于测试,您可以自己设计。这种语言将被翻译成Java和C源文件。

    另一个选择是不要弄乱自己的语言,而采用一些现有的语言。例如,Python在两种平台上都有实现: Jython (爪哇)和 IronPython (.NET)。所以你可以用那种语言写测试。Python有自己的捆绑xUnit实现: unittest 包裹

        2
  •  4
  •   rhys keepence    17 年前

    Cucumber 是编写规范的极好框架。规范由步骤定义支持,可以编写步骤定义来驱动.net和java实现。

        3
  •  4
  •   serg10    17 年前

    对于在CLR和JVM上运行的语言,还有一些其他选项。其中一些已经有了自己的单元测试框架。

    附带 Test Unit 并且存在于两个运行时的源代码兼容版本中( JRuby 和 Iron Ruby -这两个版本都与Ruby 1.8版本兼容。)

    如果你还不了解Ruby,这将是学习Ruby的一个很好的借口。。。

        4
  •  3
  •   Aaron Digulla    17 年前

    我看到两种策略:

    • 将要测试的代码包装到某种服务器中,这样您就可以调用这些方法进行远程测试。这将允许您使用任何测试套件。

    • 用J#或任何其他语言编写测试,这些语言可以轻松映射到.NET和Java。这意味着您只需编写一次测试,然后将测试代码“翻译”成两个不同的测试框架可以理解的内容。

    我建议先尝试第二种方法。它将以更复杂的测试设置为代价使测试更快。第一种方法可能更易于设置,但它会使测试速度变慢,并且您需要在测试中的某个位置启动并拆除服务器。

        5
  •  3
  •   Michael Lloyd Lee mlk    17 年前

    ikvm 而且只有C#和Java中的UI级别,每个级别都有单独的基于技术的单元测试。(或 Grasshopper 如果你是一家.NET商店)?

        6
  •  2
  •   whatnick    17 年前

        7
  •  1
  •   Michael Easter    16 年前

    我建议重新检查问题的粒度。它意味着单元测试,但为什么不进行功能/系统级测试呢。在这方面,, FIT 成为一种选择。

    例如,我们有一个Java客户端服务器应用程序。我们使用FIT作为备用客户机:我们可以指定Html输入文件,并使用一些胶水(又名fixture),我们可以点击服务器。

    好消息是,这与服务器上的语言无关,Html文件可以用作验收测试。

    坏消息是FIT仅仅是一个框架:它需要很多胶水。此外,您必须认识到这些不是单元测试。不仅粒度不同,速度也不同。i、 e.从单元测试的角度来看,大量测试可能不会在“正常”时间内运行。(我们在夜间运行,在CI构建期间只运行一小部分。)

        8
  •  1
  •   Pavel Savara    16 年前

    我是这本书的作者 jni4net ,JVM和CLR之间的开源进程内桥梁。它建立在JNI和PInvoke之上。不需要C/C++代码。我希望它能帮助你。

        9
  •  0
  •   crowne    16 年前

    不用编写应用程序的两个版本,您可以用UML对其进行建模,
    AndroMDA 将模型向前工程到单独的java和.net实现中。

    AndroMDA使用的方法论促进了单元测试的加入。