小编Pie*_*din的帖子

使用不同的Spring属性进行集成测试

我正在使用Selenium测试一个使用Spring开发的Web应用程序来检查Web应用程序是否为用户显示了正确的内容,并且他能够执行规范中的所有操作.

其他开发人员正在使用内存中的假Hibernate数据库(HSQLDB)进行单元测试.显然,我必须使用程序使用的真实数据库进行测试.Spring应用程序上下文的JDBC参数由Spring在运行时加载(或编译时用于构建WAR文件).Spring使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer找到的属性来配置webapp和测试的应用程序上下文,并且测试和webapp共享XML配置文件.

根据Maven配置文件,单元测试或集成测试,属性需要不同.

我尝试了几种方法,没有成功:

  • 使用较低级别的SQL查询开发自己的DAO.这是浪费时间和最后的解决方案.由于外键约束和数据库模型的更改,并且鉴于应用程序具有非常可靠(经过单元测试)的DAO集,因此它确实是最愚蠢的选择.
  • 使用Maven过滤器并在那里定义JDBC属性.问题是属性在主应用程序和单元测试之间共享,因为tomcat:redeploy目标包括单元测试.然后应用程序无法连接到真正的数据库.
  • 在不同文件夹中具有不同属性.Spring根本不关心配置文件的Surefire配置中定义的额外资源,无论是使用testResources还是资源.奇怪的是,这种方法非常适合为主应用程序中的每个环境提供不同的JDBC参数.我们在src/main/resources中有几个文件夹,其中包含覆盖src/main/resources中默认属性的属性.它对src/test/resources的工作方式不同.我甚至不知道如何找到这种行为的原因.
  • 让Spring根据用户定义的Maven参数加载不同的属性文件.相同的属性用于主应用程序和单元测试.当它无法找到属性文件时,Spring也会抱怨(强迫我创建带有空文件的目录只是为了让构建完成).

为什么当前的构建配置与开发人员配置文件(开发人员,测试服务器......)+测试配置文件(单元测​​试)同时运行并且属性没有相互覆盖?因为Maven会在启动单元测试时使Spring查看src/test/resources,并在启动构建目标时查看src/main/resources.不幸的是,没有像这样的集成测试的默认配置.

java spring integration-testing maven-2

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

为什么我对DateTime.TryParseExact的调用失败?

简单的问题:

我打电话:

DateTime.TryParseExact("May 16 13:47:12 2012", "MMM dd hh:mm:ss yyyy", System.Globalization.CultureInfo.GetCultureInfo("en-US"), DateTimeStyles.None, out parsedStartDate)
Run Code Online (Sandbox Code Playgroud)

结果是假的.

我为什么做错了?

.net datetime

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

.net模式:捕获多行日志文件中的字段

我有一个日志文件,如下所示:

2012-05-04 01:10:3​​5; 301383027; 00133608663205759673480010256592; 103;错误;摘要处理:119; blah1

blah2

blah3

2012-05-02 01:00:22; 301382163; 00133591322220336011720010256592; 103;错误;摘要处理:119; blah4

blah5

blah6

2012-05-02 01:00:23; 301382163; 00133591322220336011720010256592; 103;错误;摘要处理:119; blah7

blah8

blah9

我希望在每个匹配3个匹配的组中有3个匹配:日期,严重性和消息.

我试过用这种模式

(20[0-9]{2}-[0-2][0-9]-[0-9]{2} [0-2][0-9]:[0-5][0-9]:[0-5][0-9]);[^;]*;[^;]*;[^;]*;([^;]*);(.*)
Run Code Online (Sandbox Code Playgroud)

启用单行选项后,我有一个匹配(整个输入),如果禁用此选项,则不会完全捕获消息(仅与日期在同一行上的部分).

我怎么能拥有与我想要正确捕获的3个值的日志条目一样多的匹配?

编辑:我试图捕获这样的匹配:

日期: 2012-05-04 01:10:35

严重性:错误

消息: AbstractTreatment:119; blah1

blah2

blah3

.net regex

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

Control.Invoke方法没有返回

我正在尝试并行化我的代码以使其运行得更快.到目前为止,一直都是头痛而且没有结果.

我想同时更新几个DataGridViews:

    Parallel.Invoke(
        () => updateDgv1(),
        () => updateDgv2(),
        () => updateDgv3()
    );
Run Code Online (Sandbox Code Playgroud)

我尝试过使用网上随处可见的简单(但可能不是最佳)方式(例如http://msdn.microsoft.com/en-us/library/ms171728(v=vs.85).aspx).

private void updateDgv1() {
    /* some stuff */

    assignValue(this.dgv1, colPos, rowPos, value); /* in a loop */
    }

    delegate void AssigneValueCallback(DataGridView dgv, int columnPos, int rowPos, string valeur);

    public void assignValue(DataGridView dgv, Form form, int columnPos, int rowPos, string value)
    {
        if (dgv.InvokeRequired)
        {
            AssigneValueCallbackd = new AssigneValueCallback(assignValue);
            dgv.Invoke(d, new object[] { dgv, columnPos, rowPos, value });
        }
        else
        {
            dgv[columnPos, rowPos].Value = value; …
Run Code Online (Sandbox Code Playgroud)

c# .net-4.0

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

标签 统计

.net ×2

.net-4.0 ×1

c# ×1

datetime ×1

integration-testing ×1

java ×1

maven-2 ×1

regex ×1

spring ×1