我有适用于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
,但没有运气。
答案 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:
TestID->"MyTest-20111230-L0X3S3"
时,你将进入Test.m。
使用find
在您的系统上找到MUnit:
find / -name MUnit -print 2> /dev/null
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还有另外两个版本(在Head
或Version5.2
的路径中替换Version6
。
答案 2 :(得分:0)
作为@Szabolcs和@mmorris提供的解决方案的补充,这是另一种确定MUnit.m
位置的方法。
在Wolfram Workbench中,创建一个如下所示的MUnit测试:
Test[
FindFile @ FileNameJoin @ {"MUnit", "MUnit.m"}
, ""
, TestID -> "FindMUnit-20120103-W7S3Q4"
]
运行测试。它会失败,但测试的实际输出将是所需的路径名。