Tag: 基准testing

运行一个包含超过一百万个testing用例的testing套件

我们有一个分布式的testing环境,robotremoteserver启动了一堆其他应用程序,并作为testing的一部分与他们一起工作。 我试图运行的testing要求我在单个套件中运行超过一百万个testing用例。 这里的问题是当pybo t开始运行时,阻塞了8个ram,导致性能下降。 一段时间后,它冻结了。 为了解决这个问题,我计划在每个案例中创build不超过100件的独立套件。 但在这种情况下,我无法使用从其他套件启动的其他远程服务器的关键字。 我可以使用它的唯一方法是从远程服务器断开连接并在每个套件中重新连接它 – 这会破坏testing的目的。 我不确定是否有人遇到这种情况。 如果有人能想到这个问题的解决scheme,我将不胜感激。 附加信息另一件有助于解决这个问题的方法是,如果有可能从另一个套件启动的库(包含状态)中调用关键字? 使用RIDE时可以使用获取库实例吗? 我在一个套件中导入库,然后尝试获取其他套件中的库实例。 这可能吗? 我不断收到以下错误: AttributeError:远程实例没有属性“replace” 在套房1这是我正在做的事情: Import Library Remote ${verifix_xmlrpc_url} WITH NAME Verifix ${lib}= BuiltIn.Get Library Instance Verifix Set Global Variable ${lib} 在套房2: ${lib}.remove messages ${VenueNSDQ}

Django TestCase的Assertion Methods列表在哪里?

我googlesearch到的断言方法列表。 但是这个文档好像隐藏的很好。 有谁知道它在哪里?

我怎么知道什么时候在Rails中“刷新”我的模型对象?

以下是我正在进行的集成testing的一部分: user = User.first assert !user.is_active? get confirm_email_user_url(user),:confirmId => user.mail_confirmation_hash assert_equal response.status,200 # because confirm_email_user_url modifies the activation state of the object user = User.first assert_equal user.state,"activated" 我花了最后一个小时debugging这:)。 在我的初始版本中,我没有在confirm_email_user_url被访问后重新初始化user ,并且即使用户被激活,状态仍然是inactive 。 我怎么知道我是否应该“重新加载”(没有更好的名字)我的模型对象? 我应该怎样打电话才能这样做呢?

Python使用鼻子导入testing – 在当前软件包上导入模块的最佳做法是什么

这是一个经常以不同forms提出的问题,经常会得到“哈哈,你做得不好”的反应。 可以肯定的是,这是因为人们(包括我)试图用作实现的常识情况,解决scheme并不明显(如果以前没有这样做的话)。 会接受“让飞出瓶子”的答案。 特定 project/ __init__.py /code __init__.py sut.py /tests __init__.py test_sut.py tests_sut.py开始的地方: import code.sut 在根目录下运行nosetests导致: ImportError: No module named code.sut 途径: a)做一个相对的使用 from ..code import sut b)将项目的根添加到PYTHONPATH c)使用 sys.path.append 在每个testing模块开始时的导入之前添加..path。 d)只记得做一个 setup.py 在运行testing之前将模块安装到站点包中。 所以要求testing位于可以访问项目的testing包根目录下。 上面的每个人都不觉得“自然”,已经certificate有问题,或者看起来像太辛苦了! 在Java中,这个工作,但基本上是由你的构build工具/ IDE的所有类放在类path。 也许问题是我期待Python的“魔力”? 在Flask webframeworktesting中注意到,选项d)似乎是首选。 无论如何,下面推荐一个首选解决scheme的陈述将会消除我自己的“不自然”的感觉。

如何快速编写和运行小的C#代码

有些时候我想从论坛上testing新的代码,或者当我需要帮助我的朋友特定的C#问题。 问题是我不想在Visual Studio中每次创build新的“项目”只是编码/只运行这个小代码。 Java和Eclipse IDE具有“剪贴簿”function,可以执行任意的Javaexpression式。 C#程序员有什么select?

Xcode – 创buildLLDB目标时出错

每当我build立在XCode 6 beta 4中,我都会收到这个错误。这似乎让我的应用程序变得非常慢。 警告:在path“/***/***/***/***.app”使用空的LLDB目标创buildLLDB目标时出错,这可能导致从远程设备读取缓慢的内存。 这到底意味着什么,我该如何解决? 提前致谢!

toBe(true)vs toBeTruthy()vs toBeTrue()

expect(something).toBe(true) , expect(something).toBeTruthy()和expect(something).toBeTrue()什么expect(something).toBeTrue() ? 请注意, toBeTrue()是一个自定义匹配器,在jasmine-matchers toBeTrue() 器中引入了其他有用的方便的匹配器,如toHaveMethod()或toBeArrayOfStrings() 。 这个问题是泛泛而谈的,但是,作为一个真实世界的例子,我正在testing一个元素是在protractor显示的。 我应该在这种情况下使用哪个匹配器? expect(elm.isDisplayed()).toBe(true); expect(elm.isDisplayed()).toBeTruthy(); expect(elm.isDisplayed()).toBeTrue();

如何确认与水豚的JavaScriptpopup?

我已经尝试了几个在线发现的例子,但没有运气。 我正在查看确认删除链接的确认消息。 最后一次尝试是下面的代码,但是导致了一个Capybara :: NotSupportedByDriverError错误。 def confirm_dialog page.evaluate_script('window.confirm = function() { return true; }') end

任何关于基于Django项目的A / Btesting的想法?

我们刚刚开始对基于Django的项目进行A / Btesting。 我可以获得一些有关此A / Btesting的最佳实践或有用的见解的信息。 理想情况下,每个新的testing页面将与单个参数(就像Gmail一样)进行区分。 mysite.com/?ui=2应该给一个不同的页面。 所以对于每个视图,我需要编写一个装饰器来加载基于'ui'参数值的不同模板。 我不想在装饰器中硬编码任何模板名称。 那么urls.py url模式将会如何呢?

是否有一个类似dbunit的框架不能吸引java / scala?

我正在考虑制定一个新的轻量级数据库人口框架。 我绝对讨厌dbunit。 在我做之前,我想知道是否有人已经做到了。 我不喜欢dbunit的东西: 1)不build议使用最简单的写入和上手格式。 他们希望你使用臃肿的格式。 有些甚至需要XML模式。 好吧,无所谓了。 2)它们不是按照你写的顺序填充行,而是按照顺序在xml文件中定义表格。 这是非常糟糕的,因为您不能以外键约束不会导致问题的方式来sorting数据。 这只是迫使你去完全把它们关掉的麻烦。 这也浪费了时间,使你的junit基类膨胀,包括禁用外键约束的代码。 您可能需要testing数据库types(hsqldb等),并以特定于数据库的方式禁用它们。 这太糟糕了。 如果dbunit帮助自动禁用外键约束作为其框架的一部分,可能会更好,但是他们不这样做。 他们确实跟踪方言…为什么不使用它们呢? 最终,所有这一切都迫使程序员浪费时间,而不是迅速起床和testing。 3)XML是一个写作的痛苦。 我不必多说这个。 他们还提供了很多方法来做到这一点,我认为这只是使问题复杂化。 只要提供一个真正坚实的方法,并完成它。 4)当你的数据变大时,跟踪ID和他们一致/正确的关系是一个皇家的痛苦。 另外,如果你不在一个月的项目上工作,你怎么记得user_id 1是一个pipe理员,user_id 2是一个商业用户,user_id 3是一个工程师和user_id 4是别的东西? 回去检查这是浪费更多的时间。 应该有一个有意义的方式来检索它以外的任意数字。 5)速度很慢。 我发现,除非使用hsqldb,否则会很痛苦。 它不一定是。 还有很多方法搞砸了它的configuration,因为“开箱即用”并不容易。 有一个驼峰,你必须经过正确的工作。 所有这一切都鼓励人们不要使用它,或者当它们开始使用它的时候被激怒。 6)有些价值倾向于重复,喜欢date。 指定默认值,或者甚至让框架自动设置默认值,即使没有告诉它把默认值放在那里,也不错。 这样你就可以用你想要的值创build对象,并把其余的closures。 如果不需要,这肯定会指定列的每个angular落和裂缝。 7)可能最令人讨厌的是第一个条目必须包含所有的值 – 甚至是空的占位符 – 或者将来的行不会select你实际指定的列。 对于将[NULL]转换为实际的null值,DBunit没有合理的默认值。 你必须手动添加它。 告诉我,谁没有用dbunit做到这一点? 每个人都有。 它不应该是这样的! 这意味着如果你有一个多态的对象,你必须把所有的外键声明为第一行每个子类的连接表,尽pipe它们是空的。 如果你为所有的子types做一个表,你仍然需要指定第一行的所有字段。 这太糟糕了。 为了满足我的需求,还是应该成为更好的数据库testing框架的下一个框架开发人员?