我有一个自定义运行程序,它通过与其他硬件上运行的Junit服务器的套接字连接来交付Junit测试。测试按预期目标运行:
<target name="run">
<mkdir dir="reports" />
<junit fork="yes" haltonfailure="no">
<test name="${CurrentTest}" />
<formatter type="xml" />
<classpath refid="mastersuite.classpath" />
</junit>
<junitreport todir="${JunitReport.dir}">
<fileset dir=".">
<include name="TEST-*.xml" />
</fileset>
<report todir="${JunitReport.dir}" />
</junitreport>
</target>
但是,当我添加以下
<target name="run">
<delete dir="reports" failonerror="false" />
<!-- Make the reports directory -->
<mkdir dir="reports" />
<!-- Execute the tests and saves the results to XML -->
<junit fork="yes" printsummary="no" haltonfailure="no">
<batchtest fork="yes" todir="${JunitReport.dir}">
<fileset dir="${APITesting.classes}">
<include name="test/api/**/*Test.class" />
</fileset>
</batchtest>
<formatter type="xml" />
<classpath refid="mastersuite.classpath" />
</junit>
<!-- Compile the resulting XML file into an HTML based report. -->
<junitreport todir="${JunitReport.dir}">
<fileset dir="${JunitReport.dir}">
<include name="TEST-*.xml" />
</fileset>
<report todir="${JunitReport.dir}" />
</junitreport>
</target>
没有任何东西被运送到硬件,这使我相信在
这些测试仍在运行并创建报告,某些与平台无关的测试可以运行并通过,而并非需要与目标硬件上的服务进行通信的测试。
更新
我已经确定,在将@RunWith(Suite.class)与@SuiteClasses({})配对使用时,此方法可以很好地工作,但如果我明确给出测试用例,则不会如此。所以现在我真的不确定问题出在哪里。
更新
虽然我还没有找到任何可靠的方法,但是我的测试行为似乎暗示着以下几点:基于我的测试格式化方式(它们扩展了TestCase),我认为Ant将Junit3测试作为我的测试用例。如上所述,当我运行针对Junit4格式化的测试套件时(仅使用批注),我的测试将按预期运行并执行。看来,当我直接通过Junit3格式的测试用例时,就是不遵守我的注释,这意味着正在使用Junit3运行程序。
我的新问题是:有没有一种方法可以明确地告诉蚂蚁使用Junit 4Runner?
看来,如果您的测试用例使用Junit4TestAdapter,Ant会自动确定要使用哪个运行程序。我最终不得不在所有测试用例中添加以下方法:
public class MyTestCase extends TestCase
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(MyTestCase.class);
}
...
}
你们中的大多数人可能不需要扩展TestCase,但就我而言,这是必需的,因为Junit4充当Junit3服务器的客户端。
如果我在运行ant-task时查看控制台日志,我可以看到新的.jar文件是如何发送的: 如果打开创建的binmanifest.jar,我会发现一个manifest.mf文件,其中包含Class-Path属性中的所有路径,格式为:../../class1/bin../../class2/bin../../classn/bin。但是由于某些原因,我的所有测试都失败了,因为我的类找不到。我错过了什么?谢
我有使用selenium测试web服务器junit测试。当我使用ant从命令行运行测试时,一切工作正常,浏览器打开,测试按计划进行。浏览器打开,我可以看到测试正在运行。最近,我尝试添加自动测试,作为运行在Jenkins上的Ci循环的一部分。我以ant build命令运行它。我可以看到ant正在正常执行(测试类已经构建,我可以看到从测试到控制台的输出),但浏览器窗口从未打开,因此测试失败。这是我的a
我在单元测试中使用了H2数据库,使用java配置:
问题内容: 我的程序正在获取命令行参数。使用Ant时如何通过? 问题答案: 扩展了Richard Cook的答案。 这是运行任何程序(包括但不限于Java程序)的任务: 这是从文件运行Java程序的任务: 您可以像这样从命令行调用: 确保使用语法;如果运行此命令: 然后将尝试运行目标和。
在过去的几天里,我从Eclipse切换到了Android Studio,几乎所有的东西都正常工作了。然而,当我生成一个签名的APK时,似乎ProGuard从未运行过。 我正在使用生成签名的APK向导,选择“运行ProGuard”并指定我的ProGuard。cfg作为配置文件。构建过程运行时没有错误,并生成了一个功能性apk,但该apk比Eclipse生成的apk大65%。当我通过Android S
/应用程序 index.html --sass ----style.scss --/css ----style.css Gulp CLI版本2.0.1和本地版本4.0.0 运行可以正确运行sass函数并编译我的sass文件。运行启动手表。。。 如果我在style.scss中更改一些样式并保存文件,我会得到: 但没有任何更改传播到css/style.css. 任何帮助都将不胜感激。