小编Sle*_*led的帖子

如何在maven中的集成测试目标中运行单个测试

我们为maven中的集成测试阶段生命周期定义了数百个测试,并且需要很长时间才能完成.

我想要做的只是运行一个测试integration-test.我试过做:

mvn -Dtest=<my-test> integration-test
Run Code Online (Sandbox Code Playgroud)

但这不起作用.将-Dtest只运行在单元测试目标测试,而不是集成测试阶段.我试过了-Dintegration-test=<my-test>,但是被忽略了.

有没有办法做到这一点 ?


我的配置是:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <executions> 
        <execution> 
            <id>surefire-it</id> 
            <phase>integration-test</phase> 
            <goals> 
                <goal>test</goal> 
            </goals> 
            <configuration> 
                <excludes> 
                    <exclude>none</exclude> 
                </excludes> 
                <includes>
                    <include>**/api/**</include> 
                </includes> 
    ..... 
Run Code Online (Sandbox Code Playgroud)

integration-testing maven-2 maven-surefire-plugin

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

在将Jedis与Spring Data一起使用时,为什么在Redis中使用奇怪的密钥存储数据?

我正在使用Spring Data Redis和Jedis.我试图用密钥存储哈希vc:${list_id}.我能够成功插入redis.但是,当我使用redis-cli检查按键时,我看不到按键vc:501381.相反,我明白了\xac\xed\x00\x05t\x00\tvc:501381.

为什么会发生这种情况?如何更改?

redis jedis spring-data

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

如何让父母等待所有子进程完成?

我希望有人可以解释如何让父母等待所有子进程完成后再继续fork之后.我有清理代码,我想运行,但子进程需要返回才能发生这种情况.

for (int id=0; id<n; id++) {
  if (fork()==0) {
    // Child
    exit(0);      
  } else {
    // Parent
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

c operating-system posix fork process

41
推荐指数
4
解决办法
13万
查看次数

如何在Java中模拟Web服务器进行单元测试?

我想使用模拟Web服务器创建一个单元测试.是否有一个用Java编写的Web服务器,可以从JUnit测试用例轻松启动和停止?

java junit

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

从C++调用DLL中的函数

我在VS 2008中有一个解决方案,里面有2个项目.一个是用C++编写的DLL,另一个是从空白项目创建的简单C++控制台应用程序.我想知道如何从应用程序调用DLL中的函数.

假设我从一个空白的C++项目开始,我想调用一个名为的函数 int IsolatedFunction(int someParam)

我怎么称呼它?

c++ dll dllimport visual-studio-2008

39
推荐指数
4
解决办法
10万
查看次数

如何在插件中访问Maven的依赖关系层次结构

在我的插件中,我需要处理依赖关系层次结构并获取有关每个依赖关系的信息(groupId,artifactId,version等)以及它是否被排除.做这个的最好方式是什么?

maven-plugin maven maven-dependency-plugin aether

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

在JUnit中使用Spring测试服务时如何回滚数据库事务?

我测试我的DAO和服务没有问题,但是当我测试INSERTs或UPDATEs时我想回滚事务而不影响我的数据库.

@Transactional在我的服务中使用来管理交易.我想知道,是否可以知道某个事务是否正常,但是回滚它以防止更改数据库?

这是我的测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/META-INF/spring.cfg.xml")
@TransactionConfiguration(defaultRollback=true)
public class MyServiceTest extends AbstractJUnit38SpringContextTests  {
    @Autowired
    private MyService myService;

    @BeforeClass
    public static void setUpClass() throws Exception {
    }

    @AfterClass
    public static void tearDownClass() throws Exception {
    }

    @Test
    public void testInsert(){
        long id = myService.addPerson( "JUNIT" );
        assertNotNull( id );
        if( id < 1 ){
            fail();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是此测试将失败,因为事务已回滚,但插入正常!如果我删除@TransactionConfiguration(defaultRollback=true)了测试通过但是新记录将被插入到数据库中.

@Test
@Transactional
@Rollback(true)
public void testInsert(){
    long id = myService.addPerson( "JUNIT" );
assertNotNull(id); …
Run Code Online (Sandbox Code Playgroud)

java junit spring hibernate transactions

36
推荐指数
1
解决办法
6万
查看次数

Maven项目中资源文件的路径是什么?

在我的Maven项目中,我在main方法中有以下代码:

FileInputStream in = new FileInputStream("database.properties");
Run Code Online (Sandbox Code Playgroud)

但总是得到一个文件未找到错误.

我已将文件放在src/main/resources中,并将其正确复制到target/classes目录(我相信这是Maven资源的预期行为),但在实际运行程序时,它似乎永远无法找到该文件.我尝试了其他各种途径:

FileInputStream in = new FileInputStream("./database.properties");
FileInputStream in = new FileInputStream("resources/database.properties");
Run Code Online (Sandbox Code Playgroud)

等似乎没什么用.

那么正确的使用途径是什么?


根据下面的"disown's"答案,我需要的是:

InputStream in = TestDB.class.getResourceAsStream("/database.properties")
Run Code Online (Sandbox Code Playgroud)

哪个TestDB是类的名称.

谢谢你的帮助,谢绝!

java maven-2

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

是否可以使用goto与开关?

看来它可以用C#,但我需要用C++,最好是跨平台.

基本上,我有一个开关,可以根据单个条件对内容进行排序,并在其他所有内容上回退到默认处理.

说:

switch(color)
{
case GREEN:
case RED:
case BLUE:
    Paint();
    break;
case YELLOW:
    if(AlsoHasCriteriaX)
        Paint();
    else
        goto default;
    break;
default:
    Print("Ugly color, no paint.")
    break;
}
Run Code Online (Sandbox Code Playgroud)

c++ goto switch-statement

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

Maven -DskipTests被忽略了

我正在使用以下SureFire配置构建Maven项目:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>${version.maven-surefire-plugin}</version>
    <configuration>
        <includes>
            <include>**/*Test.java</include>
        </includes>
    </configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)

问题是,当我构建它时mvn clean install -DskipTests=true,测试仍在执行中.可能是什么问题呢?

我尝试了两个-DskipTests(来自Maven网站)-DskipTests=true,当我选中"跳过测试"复选框时,它由IntelliJ Idea添加.

我不使用任何Maven settings.xml.

  • Maven版本:2.2.1
  • Surefire插件:2.3

编辑 如果我注释掉SureFire插件配置,该参数的行为与我期望的一样.上面的配置可能有什么问题?

java junit maven maven-surefire-plugin

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