我有一个包含多个场景的参数化 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 进行操作。
运行所有场景一次后,可以在“运行”窗口中右键单击其中一个场景并运行或调试它。这一解决方案并不理想,因为需要先运行整个套件,然后才能运行其中一个套件。
我在 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
我一直试图扩展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)
没有成功,如果我使用类名后面的子对象它似乎工作,但由于某种原因隐藏子对象类中的方法.
任何有关如何使这项工作正常的想法或建议都值得赞赏.
我们目前正在使用SubSonic 3.0.0.2并使用Linq来玩它,我们注意到底层SQL没有参数化.
我知道查询工具是,我们可以使用它但我很好奇是否可以使用Linq参数化?
我错过了什么吗?或者这还没有在SubSonic中实现.
干杯托尼
我一直在寻找用于C++数据库访问的OTL(Oracle,Odbc和DB2-CLI模板库).我不确定我传入的查询是否转换为底层数据库的参数化查询,或者它是否基本上只是将所有参数连接成一个大字符串并将查询传递给数据库.我看到你传递给它的查询可以包含参数的类型信息,但是当时和查询命中数据库之间会发生什么,我无法分辨.
是否总是需要从派生类构造函数调用基类构造函数?当你不打电话时会发生什么?
我想知道如何为特定的异常断言编写测试?
例如(我的测试数据容器):
@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)
是否可以使用这样的容器数据来断言异常,或者我需要在具体的测试方法中建模情况?
我想从任何具有不同参数的测试类中运行选定的测试方法
例如: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中,这个赋值有什么问题:
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
有没有办法在JUnit Jupiter(Junit5)中进行参数化测试?
@RunWith(Parameterized.class)
Run Code Online (Sandbox Code Playgroud)
背景:
我经历了如何编写接口的junit测试?并希望实施测试用例在这里找到答案使用JUnit5.但是在Jupiter包中找不到相同的类/ es.
尝试:
进一步寻找替代品,我发现Extensions将替换@RunWith,如迁移提示中所述
@RunWith不再存在; 被@ExtendWith取代.
我尝试CustomExtension在这里定义一个提供的示例--MockitoExtension但是无法成功使用参数化类的实例.
期待有关如何使用参数化实现类的实例测试接口的建议JUnit5.
parameterized ×10
java ×6
junit ×4
c++ ×2
unit-testing ×2
base ×1
class ×1
collections ×1
constructor ×1
dictionary ×1
exception ×1
extends ×1
groovy ×1
jenkins ×1
junit5 ×1
linq ×1
otl ×1
scheduler ×1
sql ×1
subsonic3 ×1