我们为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) 我正在使用Spring Data Redis和Jedis.我试图用密钥存储哈希vc:${list_id}.我能够成功插入redis.但是,当我使用redis-cli检查按键时,我看不到按键vc:501381.相反,我明白了\xac\xed\x00\x05t\x00\tvc:501381.
为什么会发生这种情况?如何更改?
我希望有人可以解释如何让父母等待所有子进程完成后再继续fork之后.我有清理代码,我想运行,但子进程需要返回才能发生这种情况.
for (int id=0; id<n; id++) {
if (fork()==0) {
// Child
exit(0);
} else {
// Parent
...
}
...
}
Run Code Online (Sandbox Code Playgroud) 我想使用模拟Web服务器创建一个单元测试.是否有一个用Java编写的Web服务器,可以从JUnit测试用例轻松启动和停止?
我在VS 2008中有一个解决方案,里面有2个项目.一个是用C++编写的DLL,另一个是从空白项目创建的简单C++控制台应用程序.我想知道如何从应用程序调用DLL中的函数.
假设我从一个空白的C++项目开始,我想调用一个名为的函数 int IsolatedFunction(int someParam)
我怎么称呼它?
在我的插件中,我需要处理依赖关系层次结构并获取有关每个依赖关系的信息(groupId,artifactId,version等)以及它是否被排除.做这个的最好方式是什么?
我测试我的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) 在我的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是类的名称.
谢谢你的帮助,谢绝!
看来它可以用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) 我正在使用以下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.
编辑 如果我注释掉SureFire插件配置,该参数的行为与我期望的一样.上面的配置可能有什么问题?