Tag: 基准testing

使用Maven进行集成testing的最佳实践?

我有一个使用Hibernate(和Spring)从数据库中检索数据的Maven构build的项目。 我在我的项目中对DAO的“testing”扩展了Spring的AbstractTransactionalDataSourceSpringContextTests以便DataSource可以连接到我的类下,以便能够实际运行查询/ Hibernate逻辑,获取数据等。 在其他几个项目中,我使用这些types的testing与HSQL数据库(内存中或指向文件)配合使用,以便能够高效地testing实际的数据库查询逻辑而不依赖于外部数据库。 这样做效果很好,因为它避免了任何外部依赖和数据库在运行testing之前的状态(每个testing都被包装在一个回退的事务中)。 我很好奇最好的方式来组织这些testing,这实际上是一个松散的集成testing的味道,与Maven。 将这些testing保存在src/test/java感觉有点肮脏,但是从我读过的内容来看,似乎没有一个一致的策略或者用Maven组织集成testing的做法。 从我目前阅读的内容来看,似乎我可以使用Failsafe插件 (或Surefire的第二个实例)并将其绑定到integration-test阶段,并且还可以绑定自定义启动或closures逻辑(例如至于启动/停止HSQL实例)进行pre-integration-test或post-integration-test 。 但是,这真的是最好的方法吗? 所以我的问题基本上是 – 在Maven中组织这个最普遍的做法是什么? 我无法在文档中find任何一致的答案。 我想要的是: 从集成testing分开unit testing,所以在test阶段只运行unit testing 将自定义启动/closures逻辑绑定到pre-integration-test和post-integration-test 将集成testing的报告合并/提交给unit testingSurefire报告

如何在Maven中configurationJPA进行testing

有没有办法在Maven项目中设置第二个persistence.xml文件,以便用于testing,而不是用于部署的正常testing? 我试着把一个persistence.xml放到src / test / resources / META-INF中,它被复制到target / test-classes / META-INF,但似乎是target / classes / META-INF(从src / main / resources)得到首选,尽pipemvn -X test按照正确的顺序列出了类path条目: [DEBUG] Test Classpath : [DEBUG] /home/uqpbecke/dev/NetBeansProjects/UserManager/target/test-classes [DEBUG] /home/uqpbecke/dev/NetBeansProjects/UserManager/target/classes [DEBUG] /home/uqpbecke/.m2/repository/junit/junit/4.5/junit-4.5.jar … 我希望能够运行简单的hsqldbconfiguration的testing,而不必更改JPAconfiguration的部署版本,理想情况下直接在项目签出后不需要本地调整。

在SQL Server中强制查询超时

我们遇到了一个代码块,在缓慢的数据库中响应不佳的问题(它在查询超时时间上喋喋不休)。 我们已经创build了一个补丁,并且正在通过回归运行它。 我们不能超时。 我已经从SQL Mgmt Studio中打开了一个事务并更新了每一行来locking它们,但是这不会导致INSERT超时(这是我所需要的)。 我可以通过T-SQL轻松获得表级锁吗? 还是我不得不在主人身边摆弄? 或者我可以很容易地强制超时没有locking? 任何input赞赏。

用nosetests设置断点–pdb选项

Nosetests –pdb让我停止错误或失败,但这对于我的需求来说已经太晚了。 在执行期间逐步执行代码可以帮助我debugging问题出在哪里。 然而,鼻testing是有用的,因为它们允许依赖于相对import的testing(即,testing包)。 在执行testing之前如何设置断点? 目前我正在使用: python -m pdb /path/to/my/nosetests testfile.py 这个解决scheme是不够的。 鼻音testing会干扰pdb的输出,而我的键盘控制(如箭头键)则被打破。 使用导入pdb; pdb.set_trace()似乎是一个好主意,但是nosetests阻止我访问pdb控制台。

如何在具有鼻测的文件中指定单个testing?

我有一个名为test_web.py的文件,其中包含一个类TestWeb和许多名为test_something()的方法。 我可以像这样在课堂上进行每一个testing: $ nosetests test_web.py … ====================================================================== FAIL: checkout test ———————————————————————- Traceback (most recent call last): File "/Users/me/path/here/test_web.py", line 187, in test_checkout … 但我似乎无法运行个别testing。 在同一个PWD中运行时,这些给我“没有这样的testing”的错误: $ nosetests test_web.py:test_checkout $ nosetests TestWeb:test_checkout 这里有什么可能是错的?

水豚,如何切换到新的窗口与“_blank”目标的链接?

也许这实际上并不是我遇到的问题,但似乎在“click_link”与target =“_ blank”的链接时,会话将焦点放在当前窗口上。 所以我要么能够切换到新窗口,要么忽略_blank属性 – 本质上,我只是希望它实际上转到由链接指示的页面,所以我可以确保它是正确的页面。 我使用webkit和selenium驱动程序。 我在下面提交了我的发现。 非常感谢一个更彻底的答案。 此外,这只适用于selenium – 相当于webkit驱动程序(或指出我可以发现它自己)将不胜感激。

如何以编程方式closuresExpressJS的实例进行testing?

我想弄清楚如何closuresExpress的一个实例。 基本上,我想要.listen(port)调用的反向 – 我如何获得一个Express服务器停止监听,释放端口,并closures干净? 我知道这似乎可能是一个奇怪的查询,所以这里是上下文; 也许还有另一种方法来解决这个问题,我正在考虑错误的方式。 我正在尝试为我的socket.io/nodejs应用程序设置一个testing框架。 这是一个单页面的应用程序,所以在我的testing脚本(我使用摩卡 ,但这并不重要),我想能够启动服务器,运行testing,然后closures服务器。 我可以通过假设在testing开始之前打开服务器或者通过其中一个testing启动服务器,并且随后的每个testing都假定它已经启动,但是这真的很混乱。 我更愿意让每个testing文件都使用适当的设置启动一个服务器实例,然后在testing结束时closures这个实例。 这意味着没有奇怪的依赖运行testing,一切都是干净的。 这也意味着我可以做启动/关机testing。 那么,有关如何做到这一点的任何build议? 我曾经想过手动触发exception来使它失效,但这似乎很混乱。 我已经挖掘了快速文档和来源,但似乎无法find任何方法,将closures服务器。 在socket.io中也可能有这样的一些东西,但是由于套接字服务器只连接到了Express服务器,所以我认为这需要在快速层进行。

运行一个Maven插件执行?

我以为我是一个经验丰富的Maven用户,但我正在思考如何做到这一点! 我已经能够使用Maven的sql插件,通过我已经定义并且绑定到pre-integration-test阶段的插件执行来在数据库中删除,创build和安装模式。 不过,现在我想使用相同的SQL插件插入一些示例数据,只要我想要从命令行 – 也就是说,不绑定到任何生命周期的目标。 有几个不同的样本数据集,所以我想定义一些不同的执行。 但有没有办法通过使用执行ID也许从命令行运行这些执行之一?

线路和分行覆盖的差异

我为我的一个项目使用了Cobertura Maven插件。 但是我对生成的报告有一个疑问: 线路和分行覆盖有什么区别?

testing一个数字是否是斐波那契

我知道如何制作斐波纳契数列表,但我不知道如何testing一个给定的数字是否属于斐波那契列表 – 想到的一种方法是生成fib列表。 数字到这个数字,看看它是否属于数组,但是必须有另一个更简单和更快的方法。 有任何想法吗 ?