我有Eclipse for Java Developer 4.3 with m2e,eclemma,infinitest.我的项目使用带有junit 4.11的Eclipse m2e.
我的目的是每次无限次重新运行受上次保存影响的测试时更新覆盖信息.可能吗?
目前我能够使用Coverage手动运行测试并查看突出显示的代码,但是当我更改代码时,无限启动并且覆盖突出显示消失.
我想知道是否可以在Android Studio上进行连续测试.我找到了Eclipse/IntelliJ的Infinitest工具,但找不到Android Studio的任何工具.由于Android Studio基于IntelliJ,我认为在Android Studio上也可以有一种方法.有没有人能够做到这一点?谢谢!
我是Infinitest等连续测试产品的忠实粉丝.最近我一直在做更多的JavaScript开发,并且正在为Visua Studio寻找类似的东西,它会在保存文件后立即运行我的Jasmine测试.Mighty Moose看起来就像是.NET代码.我喜欢Karma背后的想法,但理想情况下它会与Visual Studio 2012很好地集成.
有这样的野兽吗?
visual-studio continuous-testing jasmine infinitest karma-runner
当我进行Java开发时,我正在使用Infinitest进行连续测试,当我在.nET开发时,我真的很想念即时反馈
如何在C#和.NET中进行连续测试?
编辑:我不是在寻找持续集成,比如CruiseControl,TeamCity等.它是一个即时反馈工具,可以与我正在寻找的IDE一起使用
我刚刚阅读了Michael C. Feathers伟大的书籍"有效地使用遗留代码",这是对遗留代码进行测试的圣经.在本书中,他描述了一种称为编辑触发测试的东西:
如果在本书发布时没有出来,我怀疑有人会很快开发一个IDE,允许你指定一组将在每次击键时运行的测试.这将是关闭反馈循环的一种令人难以置信的方式.
它必须发生.这似乎是不可避免的.已经有IDE可以检查每次击键时的语法,并在出现错误时更改代码的颜色.编辑触发的测试是下一步.
当我读到这篇文章时,我没有听说过支持这一点的任何IDE或工具.但是,我刚刚发现了一个名为Infinitest的项目,它支持Java.
我的问题是:
更新:
我一直在使用maven2和hudson进行持续集成,但我发现Eclipse和Maven并不能很好地协同工作.当然有一个插件,但是将maven项目混合成eclipse喜欢的东西并且构建时间和单元测试太长时间是一种胡思乱想.我正在考虑切换回纯粹的日食项目,没有蚂蚁,也没有涉及maven.使用无限插件和可能的JavaRebel代理,它将为我提供一个非常快速的构建 - 部署 - 测试周期.但是我仍然希望自动和测试,所以:
如何使用与Eclipse项目的持续集成?
是否有命令行方式来做到这一点?
是否有一个本机支持它的构建服务器?
eclipse build-automation continuous-integration javarebel infinitest
我试图让Eclipse 的Infinitest Plugin自动运行我的测试.根据文档,只要@Test测试类中的系统发生更改,它就会挂钩所有带注释的测试并运行测试类.
该插件是通过github页面提供的eclipse更新站点安装的.我确实有预期的状态栏,但它只是保持黄色说"找不到最后一次更改的相关测试".
到目前为止,我已经尝试了几个项目类型到一个简单的java项目 - 我可以手动运行所有测试Run As -> JUnit Test,JUnit按预期工作.在首选项中启用了Infinitest.几个教程,(极短)文档和页面没有帮助.我没有过滤器文件.
我在Ubuntu 15.10上使用Infinitest 5.1.115和JUnit 4.12.0运行Eclipse Mars(4.5.1).
我在Eclipse中使用的是无限的,我和JUnit有一个奇怪的现象.
我有使用org.apache.http.HttpResponse.getEntity()和的代码org.apache.http.entity.StringEntity.JUnit测试如下所示:
@Test
public void convertEncodedContentToString() throws UnsupportedEncodingException {
HttpResponse httpResponseMock = Mockito.mock(HttpResponse.class);
Mockito.when(httpResponseMock.getEntity()).thenReturn(new StringEntity("huiäöüß@€", HTTP.UTF_8));
Assert.assertEquals("huiäöüß@€", parser.convertContentToString(httpResponseMock));
}
Run Code Online (Sandbox Code Playgroud)
所有源文件都以UTF-8存储.
如果我让JUnit执行此方法,它可以正常工作.
但是,如果无限运行此测试,它会抱怨断言失败.
ComparisonFailure (expected:<hui[äöüß@€]> but was:<hui[äöüß@€]>) in ResponseBodyParserFactoryTest.convertEncodedContentToString
Run Code Online (Sandbox Code Playgroud)
显然存在字符编码问题.
由于无限接近没有选项,我不知道如何帮助最有效地运行此测试.有人可以帮帮我吗?
根据《Infinitest用户指南》,在IntelliJ IDEA中安装Infinitest插件后,您应该能够右键单击项目并“选择构面,添加Infinitest”。但是,我项目的上下文菜单中没有“构面”选项;我认为这可能与我的项目是gradle项目有关,尽管它也具有.idea项目文件夹。
有关我的项目的其他详细信息(我认为不相关,但有可能):
总之,我想知道,是否有一个JVM命令行选项来更改起始工作目录?如果它很重要,我正在运行jdk1.6.0_24.
背景:
我正在使用一个名为Robolectric for Eclipse的工具来测试主机PC上的Android应用程序而不进行仿真.Robolectric需要创建一个测试项目,但测试本身要从正在测试的Android项目中运行.这是通过Eclipse完成的,将运行配置设置为测试中的项目:"在所选项目,包或源文件夹中运行所有测试".
我想如果可能的话,从JVM命令行选项做到这一点,因为其他的工具,我用,Infinitest,不允许你指定测试的工作目录.但是,它允许您指定JVM命令行选项.
解决方法:
在找到更好的解决方法之前,一个成功的方法就是从Android项目中复制AndroidManifest.xml和res文件夹.
检查双精度值是否相等的最有效方法是什么。
我明白那个
double a = 0.00023d;
double b = 0.00029d;
boolean eq = (a == b);
Run Code Online (Sandbox Code Playgroud)
是缓慢的。
所以我在用
double epsilon = 0.00000001d;
eq = Math.abs(a - b) < epsilon;
Run Code Online (Sandbox Code Playgroud)
问题是,Infinitest抱怨太多的测试时间。没什么大不了的(最高1秒),但这让我感到好奇。
附加信息
a硬编码,因为它是期望值,b由
// fyi: current = int, max = int
public double getStatus()
{
double value = 0.0;
if (current != 0 && max != 0)
value = ((double) current) / max;
return value;
}
Run Code Online (Sandbox Code Playgroud)
更新资料
java.lang.Double就是这样
public boolean equals(Object obj) {
return (obj instanceof …Run Code Online (Sandbox Code Playgroud) infinitest ×11
eclipse ×4
junit ×4
java ×3
android ×2
testing ×2
unit-testing ×2
.net ×1
c# ×1
comparison ×1
double ×1
eclemma ×1
feedback ×1
gradle ×1
ide ×1
intellij-15 ×1
jasmine ×1
javarebel ×1
jvm ×1
karma-runner ×1
m2e ×1
robolectric ×1
tdd ×1
unicode ×1