ReadyAPI“语义分析”错误。我已将脚本库存储在 bin 文件夹中,并getBuildingInfo
从 ReadyAPI 的 groovy 测试脚本中调用该方法。大多数情况下,此方法工作正常,但偶尔会出现此错误。我想找出确切的问题并解决根本原因。我在eclipse中测试了代码,它工作得很好。
错误:错误!源单元“Script15.groovy”中的“语义分析”阶段异常 查找 PropertiesQuery 导致编译失败。此调用不应该进行任何编译。漏洞!源单元“Script15.groovy”中的“语义分析”阶段异常 查找 PropertiesQuery 导致编译失败。此调用不应该进行任何编译。
14:在静态范围内发现表观变量“数据库”,但不引用局部变量、静态字段或类。可能的原因:您试图引用绑定中的变量或静态上下文中的实例变量。您拼错了类名或静态导入的字段。请检查拼写。您尝试使用方法“数据库”,但在语法不允许的位置遗漏了括号。@ 第 14 行,第 17 列。 def dbConn = Database.getDbConnection(env);
public class Database {
public static Connection getDbConnection (String env){
Connection conn = null;
Class.forName("com.mysql.jdbc.Driver")
switch (env){
case "TEST":
conn = DriverManager.getConnection("a","b","c")
break;
case "DEV":
conn = DriverManager.getConnection("a","b","d")
break;
}
return conn;
}
public static void closeDbConnection(Connection conn) {
conn.close();
}
}
class PropertiesQuery {
public static String getBuildingInfo(String env, String id, int row ){
String result = "111";
def query = "SELECT col1, col2 FROM tabl1 WHERE id = 1"
def dbConn = Database.getDbConnection(env);
def stmt = dbConn.createStatement()
def rs = stmt.executeQuery(query);
while(rs.absolute(row)){
rs.getString("col1")
rs.getString("col2")
result = rs.getString("col1") +"/"+rs.getString("col2")
return result;
}
}
}