我正在查看https://sourceforge.net/projects/testngdatabind/并搜索在启动测试时设置属性位置的可能性。用例是我有更多的环境(例如不同的数据库),我想运行相同的测试。
TestNG数据绑定中有两个不同的属性文件。第一个(称为数据属性文件)定义数据源的类型(在我的情况下为“属性”)和测试使用的实际键/值对的URL(称为属性数据源)。但它们都没有接受通过例如传递给测试的变量。系统环境变量。
即使TestNG数据绑定框架未开发约6年,它也能很好地工作。有没有替代方法如何使TestNG测试通用,以便它们可以在不同的环境中运行?
作为替代方案,你可以使用TestNG extension QAF,它提供不同的in-built data-providers,也有resource and environment management。对于QAF,如果您的测试用例是数据驱动的并且针对不同的环境具有不同的数据,则可能如下所示:
@QAFDataProvider(dataFile = "resources/${env}/data/tc_01.json")
@Test
public void tc_01(Map<String, Object>){
}
可以在${env}
执行时提供different ways在数据文件路径中的值。这只是一个例子。根据需要,可以使用qaf的不同功能以其他替代方式。