问题列表 - 第11659页

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

我有一个我用Maven构建的项目,它使用Hibernate(和Spring)从数据库中检索数据等.

我在项目中对DAO的"测试"扩展了Spring,AbstractTransactionalDataSourceSpringContextTests因此可以将DataSource连接到我的测试类中,以便能够实际运行查询/ Hibernate逻辑,获取数据等.

在其他几个项目中,我使用这些类型的测试与HSQL数据库(内存中或指向文件)一起使用,以便能够有效地测试实际的数据库查询逻辑,而无需依赖外部数据库.这很有用,因为它可以避免任何外部依赖关系,并且在运行测试之前数据库的"状态"(每个都包含在回滚的事务中)都已定义良好.

我很好奇关于组织这些测试的最佳方法,这些测试对于Maven来说实际上是一种松散的集成测试.保持这些测试感觉有点脏src/test/java,但从我读过的内容来看,似乎没有一个一致的策略或实践来组织与Maven的集成测试.

从我到目前为止所看到的,似乎我可以使用Failsafe插件(或Surefire的第二个实例)并将其绑定到integration-test阶段,并且我还可以绑定自定义启动或关闭逻辑(例如用于启动/停止HSQL实例)pre-integration-testpost-integration-test.但是,这真的是最好的方法吗?

所以我的问题基本上是 - 用Maven组织这个的普遍接受的最佳做法是什么?我在文档中找不到任何一致的答案.

我想要的是:

  • 从集成测试中分离单元测试,因此在该test阶段仅运行单元测试
  • 能够将自定义启动/关闭逻辑绑定到pre-integration-testpost-integration-test
  • 将集成测试的报告与单元测试Surefire报告合并/提交

java testing integration-testing maven-2

68
推荐指数
3
解决办法
3万
查看次数

添加两个分数,为什么(次要)优化有效

我前几天在我的代码库中添加了一个Fraction类(第一次,以前从未需要一个,我怀疑我现在做了,但是到底是什么:-)).当在两个分数之间写入加法时,我发现了一个小的优化,但它没有意义(在数学意义上)为什么它是这样的.

为了说明,我将使用分数A和B,分别有效地由An,Bn,Ad和Bd组成分子和分母.

以下是我用于GCD/LCM的两个函数,公式也在维基百科上.它们很简单,可以理解.当然,LCM也可以是(A*B)/ C.

static unsigned int GreatestCommonDivisor(unsigned int A, unsigned int B)
{
    return (!B) ? A : GreatestCommonDivisor(B, A % B);
}

static unsigned int LeastCommonMultiple(unsigned int A, unsigned int B)
{
    const unsigned int gcDivisor = GreatestCommonDivisor(A, B);
    return (A / gcDivisor) * B;
}
Run Code Online (Sandbox Code Playgroud)

首先让我们绕过第一种方法:

least_common_mul = least_common_multiple(Ad, Bd)  
new_nominator = An * (least_common_mul / Ad) + Bn * (least_common_mul / Bd)  
new_denominator = least_common_mul  
Run Code Online (Sandbox Code Playgroud)

瞧,工作,明显,完成.

然后通过我记事本上的一些涂鸦,我遇到了另一个有效的:

greatest_common_div = greatest_common_divisor(Ad, Bd)  
den_quot_a = Ad / greatest_common_div …
Run Code Online (Sandbox Code Playgroud)

math

1
推荐指数
1
解决办法
300
查看次数

Twisted python的问题 - 发送二进制数据

我想要做的很简单:从客户端向服务器发送文件.首先,客户端发送有关文件的信息 - 它的大小.然后它发送实际文件.

这是我到目前为止所做的:

Server.py

from twisted.internet import reactor, protocol
from twisted.protocols.basic import LineReceiver

import pickle
import sys

class Echo(LineReceiver):

    def connectionMade(self):
        self.factory.clients.append(self)
        self.setRawMode()

    def connectionLost(self, reason):
        self.factory.clients.remove(self)

    def lineReceived(self, data):
        print "line", data

    def rawDataReceived(self, data):
            try:
                obj = pickle.loads(data)
                print obj
            except:
                print data

        #self.transport.write("wa2")

def main():
    """This runs the protocol on port 8000"""
    factory = protocol.ServerFactory()
    factory.protocol = Echo
    factory.clients = []
    reactor.listenTCP(8000,factory)
    reactor.run()

# this only runs if the module was *not* imported
if __name__ == …
Run Code Online (Sandbox Code Playgroud)

python file twisted send

5
推荐指数
1
解决办法
5319
查看次数

让Crystal在PDF中正确嵌入TT字体

有没有人遇到问题让Crystal XI在通过网络显示报告(由RAS提供)然后导出为PDF时嵌入字体?我们在一些报告中使用了条形码字体,它通过Web查看器和导出为PDF时工作正常.当我们将报表服务器从2000个框移动到2003框时,不再导出该字体.它确实在html查看器中正确显示,但是当您将其导出为PDF以进行打印时,PDF不包含该字体.True Type字体安装在新服务器上,具有令人反感的宽松权限,并且字体安装在所有客户端计算机上.有没有办法在某种"调试"模式下启动Crystal,它将发出有关它正在做什么的信息?

(编辑指定仅在通过RAS提供的页面导出为PDF时未嵌入字体时)

pdf truetype crystal-reports

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

我们如何使用CSS开发原生iPhone应用程序?

我没有开发任何网络应用程序.我正在尝试使用CSS开发iPhone原生应用程序.我很困惑在哪里包含它并使用它.是否在viewDidLoad或applicationDidFinishLaunching中使用它.我真的厌倦了使用相同的UI外观.有谁能够帮我?

谢谢你们.

css iphone objective-c

0
推荐指数
1
解决办法
1941
查看次数

jQuery:选择表的前五行

如何快速获取表的前5行中的文本框的jQuery选择器?我有一个包含许多行和许多文本框的表; 我只是想在表格的前5行中选择文本框.是否有捷径可寻?

javascript jquery

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

添加到容器的方法的好名称,如果不是那么

对于一个向容器添加内容的方法来说,如果它尚未存在,那么它的名称是什么,即

void AddCustomerToList(CustomerList list, Customer customer)
Run Code Online (Sandbox Code Playgroud)

但是这个名称没有正确表达,如果它已经存在,它就不会被添加.什么是更好的名字?AddCustomerToListIfNotThereAlready?EnsureCustomerInList?

methods naming-conventions

1
推荐指数
1
解决办法
212
查看次数

Visual Studio 2008,运行时库使用建议

我想了解一些关于Visual Studio 2008的运行时库的信息.最具体的是我何时应该考虑DLL版本以及何时应该考虑静态版本.

Visual Studio文档描述了DLL依赖关系和链接库方面的技术差异.但我想知道为什么我要用一个而不是另一个.更重要的是,为什么我要使用多线程DLL运行时,这显然会迫使我的应用程序进入DLL依赖,而静态运行时对我的应用程序用户机器没有这样的要求.

c++ runtime visual-studio

4
推荐指数
1
解决办法
2377
查看次数

RegEx匹配5个字符的序列

我想ac#regex来确定一个字符串是否在定义的序列中包含5个以上的字符.

示例:如果序列是字母表,那么'ghijk'将为true,而'lmn'将为false.

编辑:序列需要按顺序排列.从上面的例子'ghijz'将返回false.

c# regex

2
推荐指数
1
解决办法
1920
查看次数

在Delphi中淡入alpha混合的PNG形式

几年前,当Vista首次发布时,我问了一个关于这个问题的问题,但从未解决过这个问题,并将其作为后来考虑的问题搁置了.

我有一个闪屏,我努力让自己看起来很棒.它是一个32bpp的alpha混合PNG.我有一些代码(如果需要我可以挖掘!)在Windows XP或Vista +下关闭桌面组合时效果很好.然而,在Vista +下,所有透明部分都是黑色的,破坏了一切看起来很棒的东西!

所以,我的问题是这样的:因为任何人都可以将一个32bpp的alpha混合PNG作为启动画面显示,无论是否激活桌面合成都可以使用?如果需要,我可以免费或以其他方式使用第三方组件.

理想情况下,这适用于Delphi 7.

更新:除了下面的答案,这些工作非常好,我发现TMS TAdvSmoothSplashScreen组件也能很好地处理这个任务,如果有点复杂的话.

delphi png alphablending

4
推荐指数
2
解决办法
5133
查看次数