标签: parameterized

在 intellij 中运行参数化 junit 测试的单个场景

我有一个包含多个场景的参数化 junit 测试,并且需要能够仅运行其中一个场景。

我想在 IntelliJ 中进行。有人知道怎么做吗?

这是一个代码示例:

以下是场景、参数和测试方法的集合:

@RunWith(Parameterized.class)
public class MyTest {

   @Parameterized.Parameters(name = "{index}: {0}")                
   public static List<String[]> e2e_scenarios() {                  
       return  Arrays.asList(new String[][]{                       
               {"scenario 1"},                                  
               {"scneario 2"}, 
       });
   }       

   @Parameterized.Parameter       
   public String scenarioName;    

   @Test
   public void testrScenario() {
       System.out.println("running scenario " + scenarioName);
   }
}
Run Code Online (Sandbox Code Playgroud)

我希望能够只运行一个场景。最好,我不想通过 IntelliJ GUI 或 Junit Runner 进行操作。

运行所有场景一次后,可以在“运行”窗口中右键单击其中一个场景并运行或调试它。这一解决方案并不理想,因为需要先运行整个套件,然后才能运行其中一个套件。

java junit parameterized intellij-idea

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

带有参数化调度程序的主动选择反应参数

我在 Jenkins 中进行了一些参数化构建,其中包含几个主动选择反应参数:par1、par2。par1 由组合定义,par2 值取决于 par1:

switch (par1) {
    case 'value1': return 'test1'
    case 'value2': return 'test2'
    default: return 'test'
}
Run Code Online (Sandbox Code Playgroud)

它适用于手动触发,但如果我尝试使用参数化时间表触发,则会失败:

H * * * * %par1=value1
Run Code Online (Sandbox Code Playgroud)

有可能以某种方式解决这个问题吗?

groovy parameterized scheduler environment-variables jenkins

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

如何参数化扩展集合

我一直试图扩展ArrayList类没有太大的成功.我想扩展它,并能够参数化它.

通常你有类似的东西

ArrayList<SomeObject> list = new ArrayList<SomeObject>();
Run Code Online (Sandbox Code Playgroud)

我想要

MyList<SomeObject> list = new MyList<SomeObject>();
Run Code Online (Sandbox Code Playgroud)

简单地扩展ArrayList不起作用.

public class MyList extends ArrayList ...
Run Code Online (Sandbox Code Playgroud)

当我尝试使用它时,我得到了错误

MyList类型不是通用的; 它不能使用参数<SomeObject>进行参数化

我尝试过变种

public class MyList extends ArrayList<Object>
public class MyList<SubObject> extends ArrayList<Object>
Run Code Online (Sandbox Code Playgroud)

没有成功,如果我使用类名后面的子对象它似乎工作,但由于某种原因隐藏子对象类中的方法.

任何有关如何使这项工作正常的想法或建议都值得赞赏.

java collections extends parameterized

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

SubSonic 3和Linq参数化查询

我们目前正在使用SubSonic 3.0.0.2并使用Linq来玩它,我们注意到底层SQL没有参数化.

我知道查询工具是,我们可以使用它但我很好奇是否可以使用Linq参数化?

我错过了什么吗?或者这还没有在SubSonic中实现.

干杯托尼

linq parameterized subsonic3

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

C++ OTL SQL数据库库是否使用参数化查询或字符串连接?

我一直在寻找用于C++数据库访问的OTL(Oracle,Odbc和DB2-CLI模板库).我不确定我传入的查询是否转换为底层数据库的参数化查询,或者它是否基本上只是将所有参数连接成一个大字符串并将查询传递给数据库.我看到你传递给它的查询可以包含参数的类型信息,但是当时和查询命中数据库之间会发生什么,我无法分辨.

c++ sql parameterized otl

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

如果不从派生构造函数调用基础构造函数会发生什么?

是否总是需要从派生类构造函数调用基类构造函数?当你不打电话时会发生什么?

c++ constructor class base parameterized

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

断言某些参数化向量会在JUnit中抛出异常?

我想知道如何为特定的异常断言编写测试?

例如(我的测试数据容器):

@Parameters(name = "{index}: {0} > {1} > {2} > {3} > {4}")
public static Iterable<Object[]> data() {
  return Arrays.asList(new Object[][] {
    {"1200", new byte[] {0x4B0}, "1200", 16, 2},
    {"10", new byte[] {0x0A}, "10", 8, 1},
    {"13544k0", new byte[] {0x0A}, "1200", 8, 1},  <== assert thrown exception
    {"132111115516", new byte[] {0x0A}, "1200", 8, 1},<== assert thrown exception
  });
}
Run Code Online (Sandbox Code Playgroud)

是否可以使用这样的容器数据来断言异常,或者我需要在具体的测试方法中建模情况?

java junit unit-testing exception parameterized

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

如何使用不同的参数运行选定的junit测试

我想从任何具有不同参数的测试类中运行选定的测试方法

例如:1)ClassA - >测试方法A,B

@Test
public void testA(String param) {
    System.out.println("From A: "+param);
}
@Test
public void testB(String param) {
}
Run Code Online (Sandbox Code Playgroud)

2)ClassB - >测试方法C,D

@Test
public void testC(String param) {
    System.out.println("From C: "+param);
}
@Test
public void testD(String param) {
}
Run Code Online (Sandbox Code Playgroud)

从这些我希望运行以下测试
1)testA(来自ClassA)两次使用diff params"test1"和"test2"
2)testC(来自ClassB)两次使用diff params"test3"和"test3"

这里我的测试计数应该显示为'4'

任何人都可以帮助...

java customization junit parameterized

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

什么在这个赋值中无效:`Map <String,Object> mObj = new HashMap <String,String []>();`?

在java中,这个赋值有什么问题:

Map<String, Object> mObj = new HashMap<String, String[]>();
Run Code Online (Sandbox Code Playgroud)

我明白了:

error: incompatible types: HashMap<String,String[]> cannot be converted to Map<String,Object>
Run Code Online (Sandbox Code Playgroud)

String[]Object,这应该工作.如果我投射到这样的非参数Map:Map<String, Object> mObj = (Map) new HashMap<String, String[]>();它是有效的,但当然,我得到一个警告,它是脏的.

此外,我觉得我的第一个任务应该有效.

谢谢 !

PS:我不能简单地改变new HashMap<String, String[]>();,new HashMap<String, Object>();因为在现实中,我调用一个返回a的方法,Map<String, String[]>();当然,我不能改变这个方法.再次感谢你.

java dictionary compiler-errors parameterized incompatibletypeerror

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

JUnit Jupiter中的参数化测试执行(JUnit5)

有没有办法在JUnit Jupiter(Junit5)中进行参数化测试?

@RunWith(Parameterized.class)
Run Code Online (Sandbox Code Playgroud)

背景:

我经历了如何编写接口的junit测试?并希望实施测试用例在这里找到答案使用JUnit5.但是在Jupiter包中找不到相同的类/ es.

尝试:

进一步寻找替代品,我发现Extensions将替换@RunWith,如迁移提示中所述

@RunWith不再存在; 被@ExtendWith取代.

我尝试CustomExtension这里定义一个提供的示例--MockitoExtension但是无法成功使用参数化类的实例.

期待有关如何使用参数化实现类的实例测试接口的建议JUnit5.

java junit unit-testing parameterized junit5

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