标签: testing

确定bash中是否存在函数

目前我正在做一些从bash执行的单元测试.单元测试在bash脚本中初始化,执行和清理.该脚本通常包含init(),execute()和cleanup()函数.但它们不是强制性的.我想测试它们是否定义.

我之前通过greping和seding来源做了这个,但它似乎错了.有没有更优雅的方式来做到这一点?

编辑:以下代码片段就像一个魅力:

fn_exists()
{
    LC_ALL=C type $1 | grep -q 'shell function'
}
Run Code Online (Sandbox Code Playgroud)

testing bash scripting function

171
推荐指数
7
解决办法
6万
查看次数

如何使用Ruby on Rails开始使用TDD?

我熟悉这些概念(在大学里参加测试课程),但我不知道如何真正使用它们,因为我从未参与过"真正的"TDD项目.

我即将开始使用Ruby on Rails开发项目(最有可能使用2.3).此应用程序将用于管理数据,用户和一些文件.一开始不会太复杂,但在接下来的6个月内可能会扩展很多,所以我觉得现在是进入TDD的最佳时机.

我对如何做到这一点有一个基本的想法,但我仍然需要一些指示和建议:

  • 我应该阅读什么Ruby on Rails TDD 101文章?

  • 我需要测试什么?

  • 我应该使用什么gem /插件?

  • 我应该使用rspec吗?别的什么?

  • 一旦我完成了所有测试课程,我该如何进行部署?(例如:持续整合)

  • TDD到底耗时多少?

  • 我是否需要阅读一本关于此的书,或者我可以通过玩它并阅读在线教程来获得所有内容吗?如果我需要读一本书,那本书是什么?


我喜欢用例子学习,所以有人可以告诉我如何去采取TDD方法来解决这个问题:

我有公司.我有联系人.联系人可以链接到1家公司.公司可以拥有多个联系人.我想创建方法来创建联系人,公司和公司的联系人.

您不必在答案中使用此示例,但它会有所帮助:)

testing tdd ruby-on-rails

167
推荐指数
6
解决办法
5万
查看次数

在pytest中,conftest.py文件有什么用?

我最近发现了pytest.看起来很棒.但是,我觉得文档可能更好.

我正在尝试了解哪些conftest.py文件的用途.

在我(当前很小的)测试套件中,我conftest.py在项目根目录中有一个文件.我用它来定义我注入测试的灯具.

我有两个问题:

  1. 这是正确使用的conftest.py吗?它有其他用途吗?
  2. 我可以拥有多个conftest.py文件吗?我什么时候想这样做?将举例说明.

更一般地说,您如何conftest.py在py.test测试套件中定义文件的目的和正确使用?

python testing pytest

166
推荐指数
5
解决办法
4万
查看次数

如何运行Maven Integration测试

我有一个maven2多模块项目,在我的每个子模块中,我都有JUnit测试,这些测试都是命名的Test.java,分别Integration.java用于单元测试和集成测试.当我执行:

mvn test

*Test.java执行子模块中的所有JUnit测试.当我执行

mvn test -Dtest=**/*Integration

没有任何Integration.java测试在子模块中执行.

这些看起来像是完全相同的命令,但是带有-Dtest =/*Integration**的命令不起作用它显示在父级别运行的0个测试,没有任何测试

java testing maven-2 surefire

160
推荐指数
8
解决办法
19万
查看次数

设置RSpec来测试gem(不是Rails)

使用添加的rspec-rails生成器来设置RSpec以测试Rails应用程序非常容易.但是如何添加RSpec来测试开发中的宝石?我不是在使用珠宝商或这样的工具.我只是使用Bundler(bundle gem my_gem)来设置新gem的结构并手动编辑*.gemspec.我还加入s.add_development_dependency "rspec", ">= 2.0.0"了gemspec并做了一个bundle install.

是否有一些很好的教程,接下来要做什么让RSpec工作?

testing gem rubygems rspec rspec2

152
推荐指数
4
解决办法
5万
查看次数

我为什么要使用Hamcrest-Matcher和assertThat()而不是传统的assertXXX() - 方法

当我查看Assert类JavaDoc中的示例时

assertThat("Help! Integers don't work", 0, is(1)); // fails:
// failure message:
// Help! Integers don't work
// expected: is <1> 
// got value: <0>
assertThat("Zero is one", 0, is(not(1))) // passes
Run Code Online (Sandbox Code Playgroud)

比方说,我没有看到一个很大的优势assertEquals( 0, 1 ).

如果构造变得更复杂但是你看到更多的优点,那么对于消息可能很好吗?可读性?

java testing junit hamcrest junit4

150
推荐指数
5
解决办法
5万
查看次数

如何在Pylons中使用Nose运行单个测试

我有一个Pylons 1.0应用程序,在测试/功能目录中有一堆测试.我得到了奇怪的测试结果,我想只运行一次测试.鼻子文档说我应该能够在命令行传递测试名称,但无论我做什么,我都会得到ImportErrors

例如:

nosetests -x -s sometestname
Run Code Online (Sandbox Code Playgroud)

得到:

Traceback (most recent call last):
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/loader.py", line 371, in loadTestsFromName
   module = resolve_name(addr.module)
  File "/home/ben/.virtualenvs/tsq/lib/python2.6/site-packages/nose-0.11.4-py2.6.egg/nose/util.py", line 334, in resolve_name
   module = __import__('.'.join(parts_copy))
ImportError: No module named sometestname
Run Code Online (Sandbox Code Playgroud)

我得到了同样的错误

nosetests -x -s appname.tests.functional.testcontroller
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法?

testing pylons nose nosetests

149
推荐指数
2
解决办法
6万
查看次数

如何使用Pythons timeit计算代码段以测试性能?

我有一个python脚本,它应该正常工作,但我需要编写执行时间.我用谷歌搜索了我应该使用timeit但我似乎无法让它工作.

我的Python脚本如下所示:

import sys
import getopt
import timeit
import random
import os
import re
import ibm_db
import time
from string import maketrans
myfile = open("results_update.txt", "a")

for r in range(100):
    rannumber = random.randint(0, 100)

    update = "update TABLE set val = %i where MyCount >= '2010' and MyCount < '2012' and number = '250'" % rannumber
    #print rannumber

    conn = ibm_db.pconnect("dsn=myDB","usrname","secretPWD")

for r in range(5):
    print "Run %s\n" % r        
    ibm_db.execute(query_stmt)
 query_stmt = ibm_db.prepare(conn, update)

myfile.close()
ibm_db.close(conn)
Run Code Online (Sandbox Code Playgroud)

我需要的是执行查询并将其写入文件所需的时间 …

python testing timeit database-tuning

140
推荐指数
6
解决办法
16万
查看次数

验收测试和功能测试之间的区别?

验收测试和功能测试之间的真正区别是什么?

每个的亮点或目标是什么?我读到的每个地方都模糊不清.

testing acceptance-testing functional-testing

138
推荐指数
5
解决办法
10万
查看次数

使用基类和子类进行Python单元测试

我目前有一些单元测试,它们共享一组共同的测试.这是一个例子:

import unittest

class BaseTest(unittest.TestCase):

    def testCommon(self):
        print 'Calling BaseTest:testCommon'
        value = 5
        self.assertEquals(value, 5)

class SubTest1(BaseTest):

    def testSub1(self):
        print 'Calling SubTest1:testSub1'
        sub = 3
        self.assertEquals(sub, 3)


class SubTest2(BaseTest):

    def testSub2(self):
        print 'Calling SubTest2:testSub2'
        sub = 4
        self.assertEquals(sub, 4)

if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

以上的输出是:

Calling BaseTest:testCommon
.Calling BaseTest:testCommon
.Calling SubTest1:testSub1
.Calling BaseTest:testCommon
.Calling SubTest2:testSub2
.
----------------------------------------------------------------------
Ran 5 tests in 0.000s

OK
Run Code Online (Sandbox Code Playgroud)

有没有办法重写上面的内容,以便第一个testCommon不被调用?

编辑: 我没有运行上面的5个测试,而是希望它只运行4个测试,2个来自SubTest1,另外2个来自SubTest2.似乎Python unittest自己运行原始的BaseTest,我需要一种机制来防止这种情况发生.

python testing unit-testing

137
推荐指数
9
解决办法
5万
查看次数