对于客户,我们需要为集成测试生成详细的测试报告,这些测试报告不仅显示一切都是绿色的,而且还显示测试的内容.我和我的同事是懒惰的人,我们不想破解电子表格或文本文档.
为此,我想到了一种方法,可以使用每个@Test注释方法和每个测试类的JavaDoc注释来记录更复杂的集成测试.对于测试人员来说,查看哪些需求,Jira票证或测试链接到的任何内容以及测试实际尝试的内容都是一个很好的帮助.我们也想向客户提供这些信息.
现在最大的问题是:我们如何将每个方法和每个测试类的JavaDoc放入JUnit报告中?我们使用JUnit 4.9和Maven.
我知道,每个assertXXX()都有一个描述,但我们真的需要一个漂亮的HTML列表作为结果或PDF文档列出所有类和文档,下面是所有@Test方法及其描述,测试时间,结果如果失败,原因.
还是有另一种方法可以生成花哨的测试脚本吗?(或者我们应该在此开始一个OpenSource项目!?;-))
更新: 我问了另一个关于如何向Eclipse添加RunListener以使其在Eclipse启动时也在Eclipse中报告的问题.使用自定义TestRunner的建议解决方案是另一种获得测试结果报告的可能性.看看:如何在Eclipse中使用JUnit RunListener?
我需要设置由CI系统自动触发的性能测试.为此,我想使用JMeter,因为一些脚本和经验已经存在,我想将它与Maven结合起来.
在我研究一个合理的插件时,我发现存在两个插件:
哪一个更好用?两者似乎都在维持并正在开发中.有这方面的经验吗?甚至配置也类似.
我很乐意得到一些提示,以帮助我决定,而不是玩两个插件几天.
我开发了一个Eclipse RCP应用程序,它大量使用OSGi包,它提供了供以后使用的服务.用例要求捆绑包注册其服务(例如导入过滤器)以便稍后在不同情况下使用.OSGi包使用maven-bundle-plugin构建.
如何告诉Equinox自动启动OSGi包?通过Activator的常规方法不起作用.只有懒惰模式正在工作,但我无法触及未知包中的类.我阅读了OSGi规范,并且没有提供与延迟加载相反的负载.还有机会标记捆绑自动加载吗?
在Eclipse中,我有机会将Auto-Start设置为true,但是我在Maven和Tycho的分发版本中做了什么?
由于未加载org.eclipse.equinox.ds的问题,声明性服务无法正常工作.我能以某种方式开始而不是激活器吗?这也是一个解决方案,但我不知道如何构建分发或如何设置配置.
这里的最佳做法是什么?还有其他可能性吗?Eclipse平台上的OSGi包的文档有点薄.
我想念谷歌的一些好关键词找到有用的东西,所以我需要在这里问...
在与Eclipse的调试会话期间,检查中的线程在检查变量期间变为"评估"模式.变量显示为输入一次,但线程后续挂起,只能终止.变量的内容不会再次显示.尝试通过右键单击该线程并选择"终止评估"来终止评估,将显示以下消息:
"尝试终止评估只能停止一系列语句.当前正在执行的语句(例如方法调用)不能被中断."
这里发生了什么?我可以在同一位置释放并重新启动线程,还是终止唯一的选项?这种行为是由变量的内容引起的还是由其他东西引起的?
我为JUnit编写了一个简单的RunListener,它可以很好地与Maven一起使用.我可以通过maven-failsafe-plugin注册它
<properties>
<property>
<name>listener</name>
<value>com.asml.lcp.middleware.common.jboss.test.tps.TestDocumentationListener</value>
</property>
</properties>
Run Code Online (Sandbox Code Playgroud)
并从监听器中查看正确的输出.
现在我想在Eclipse中注册相同的RunListener,以便在运行测试时看到相同的输出.
这可能吗?出于测试目的并保持一致,最好具有相同的输出.
我写了一个内核模块来监视cpu和内存时间序列.除此之外,我想记录所有进程创建(以及它们的元日期,如pid,cmdline,...),并且还存在其总统I/O和CPU使用情况等统计信息.
主要问题是:我可以创建一种监听器来处理创建和退出吗?特别是在退出时,我还需要该过程的元信息.如何才能做到这一点?
在子例程或函数中,可以使用intent(in)定义输入变量,并且编译器确保在子例程内不能更改变量.一旦变量(通过引用)传递给另一个子例程,该子例程就能够在没有编译器警告的情况下更改变量.
这是用gfortran测试的代码:
program Test
integer i
i = 21 ! half the truth
call test(i)
write (*,*) "21 expected, but is 42: ", i
end program
subroutine test(i)
integer, intent(in) :: i
call doSomethingNasty(i)
end subroutine
subroutine doSomethingNasty(i)
integer :: i
i = 42 ! set the full truth ;-)
end subroutine
Run Code Online (Sandbox Code Playgroud)
我的问题是:
test((i)).对于数值变量,这是可以理解的,但是这似乎也适用于gfortran的数组,派生类型和指针.这也适用于其他编译器吗?这是保护我的局部变量的安全方法吗?我们使用了大量遗留代码,并考虑为新代码引入一些指标.是否可以让Findbugs和Checkstyle仅运行已更改的文件而不是完整的项目?
确保只检查质量最低的文件是很好的,但代码库本身(尚未)触及并评估不会使人们因成千上万的问题而混淆.
使用OpenCL的getDeviceInfo,可以获得可用计算单元的数量(CL_DEVICE_MAX_COMPUTE_UNITS).在我的nVidia Geforce 8600GTS上,我有4个计算单元,每个单元有8个核心.使用getDeviceInfo(... CL_DEVICE_MAX_COMPUTE_UNITS ...),我得到4作为计算单元的答案.但是,如何获取有关每个计算单元的内核数量的信息?
OpenCL规范没有对该主题给出任何暗示.有谁知道如何以标准方式检索每个计算单元的核心数量?
我这里有一个问题,一般是部署顺序,特别是时间.
我有一个耳朵1,通过bean和一些队列提供一些功能.队列在standalone.xml中配置.另一个耳朵2使用来自ear1的这项服务.
所以依赖关系看起来像:ear1 < - ear2
因此,我将耳2的部署结构配置为依赖于耳1,现在部署顺序本身是正确的.
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ear1.ear" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud)
部署顺序现在是正确的,但我现在拥有的是竞争条件,因为(我猜)未初始化的bean来自耳朵1.
当我延迟部署ear2时,一切正常.
有谁知道如何控制部署的时间.是否可以通过jboss-deployment-structure.xml指定部署顺序,还可以指定开始下一次部署所需的生命周期?
UPDATE
我试图指定包含要使用的服务的实际bean jar.这也行不通.看起来像:
<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<dependencies>
<module name="deployment.ear1.ear.bean.jar" />
</dependencies>
</deployment>
</jboss-deployment-structure>
Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个应用程序,它具有基于JBoss 7.1上的JavaEE 6.0的服务器部分和基于Eclipse RCP 3.7的客户端.
对于共享API的简单OSGi包,由于版本和depdencenies的一些差异,我已经遇到了麻烦.对于bundle激活器, API需要" org.osgi.framework. ",对于slf4j日志API ,API需要" org.slf4j. ".
目前我的客户端工作得很好,但JBoss告诉我OSGi导入的预期版本以及slf4j的导入不适合...
我有最佳实践在Eclipse和JBoss之间共享OSGi包吗?我是否需要回到简单的导入和导出声明,或者我能以某种方式使用Require-Bundle吗?我是否需要为JBoss创建一些兼容包以使其运行?在这里进行的最佳方式是什么?
更新 我通过使用Import-Package专门解决了这个问题.对于像org.osgi.framework这样的依赖是使用version ="0.0"来解释它并不重要.:-(这不是很安全,但目前我没有看到另一种选择.有更好的方法吗?
更新2 还需要注意实现OSGi框架的正确版本.JBoss 7.1.x仅实现了OSGi 4.2,它不支持类型安全服务检索.