适用于Mac的Wolfram Workbench 2.0中MUnit的位置在哪里?

时间:2011-12-30 21:00:46

标签: wolfram-mathematica

我有适用于Mac的Mathematica 8.0和Wolfram Workbench 2.0。我想使用MUnit对我正在创建的包进行单元测试,但我发现MUnit上缺少文档令人沮丧。

最好的资源是Mathematic Cookbook by Sal Mangano。第19.11节涵盖“将Wolfram Workbench的MUnit包集成到前端”。

我想,一旦我将MUnit暴露给前端,我将能够查询MUnit API吗? 。只有一个问题,我找不到MUnit包。我尝试按照书中的建议找到MUnit目录:

find / -name MUnit -print 2> /dev/null

,但没有运气。

3 个答案:

答案 0 :(得分:7)

如果您对此答案进行投票,请向Szabolcs表示一些luv,也可以通过投票表达他的回答。他对此非常有帮助。

MUnit的位置取决于首次使用Wolfram Workbench功能的顺序。 这只是一个理论,但它解释了为什么find最初无法找到MUnit,但现在却找到它。在我的系统上,MUnit位于:

/Applications/Wolfram\ Workbench.app/configuration/org.eclipse.osgi/bundles/214/1/.cp/MathematicaSourceVersioned/Head/MUnit

使用Wolfram Workbench在您的系统上找到MUnit:

  1. 创建一个调用代码的测试用例。
  2. 在代码中放置一个由测试用例测试的断点。
  3. 调试测试用例。
  4. 一旦你在断点处停下来,继续踩踏代码,最后当你走进TestID->"MyTest-20111230-L0X3S3"时,你将进入Test.m。
  5. 将鼠标悬停在Test.m标签上,您将看到Test.m。
  6. 的位置

    location to Test.m in Mac version

    使用find在您的系统上找到MUnit:

    1. 在Wolfram Workbench中创建一个测试用例。
    2. 打开终端并输入:find / -name MUnit -print 2> /dev/null
    3. find结果:

      /Applications/Wolfram Workbench.app/configuration/org.eclipse.osgi/bundles/214/1/.cp/MathematicaSourceVersioned/Head/MUnit
      /Applications/Wolfram Workbench.app/configuration/org.eclipse.osgi/bundles/214/1/.cp/MathematicaSourceVersioned/Version5.2/MUnit
      /Applications/Wolfram Workbench.app/configuration/org.eclipse.osgi/bundles/214/1/.cp/MathematicaSourceVersioned/Version6/MUnit
      

      找到位置后,您可以使用以下方式查询MUnit包: (注意:路径可能略有不同)

      AppendTo[$Path, 
        FileNameJoin[{"/", "Applications", "Wolfram Workbench.app", 
          "configuration", "org.eclipse.osgi", "bundles", "214", "1", ".cp",
           "MathematicaSourceVersioned", "Head", "MUnit"}]];
      Needs["MUnit`"];
      ?MUnit`*
      (* Need a blank line after ?MUnit`* otherwise a nasty message is generated. *)
      

答案 1 :(得分:5)

我在

中找到了MUnit.m
...\configuration\org.eclipse.osgi\bundles\347\1\.cp\MathematicaSourceVersioned\Head\MUnit

在Eclipse(或Workbench)安装目录中。我没有Mac,但无论平台如何,它都应该在同一个地方。

Mathematica 6和5.2还有另外两个版本(在HeadVersion5.2的路径中替换Version6

答案 2 :(得分:0)

作为@Szabolcs和@mmorris提供的解决方案的补充,这是另一种确定MUnit.m位置的方法。

在Wolfram Workbench中,创建一个如下所示的MUnit测试:

Test[
  FindFile @ FileNameJoin @ {"MUnit", "MUnit.m"}
, ""
, TestID -> "FindMUnit-20120103-W7S3Q4"
]

运行测试。它会失败,但测试的实际输出将是所需的路径名。

screenshot showing failed unit test with the desired pathname