我正在尝试使用Gradle为JenkinsShared库创建单元测试,以运行测试任务。
我遵循了this教程,该教程在结论上为vars
文件夹中的功能提供了一个共享库的有效测试套件(单元测试位于src/test/groovy/*Test.groovy
中)。
但是,在我们内部的共享jenkins库中,我们遵循了一种更加面向对象的样式和隔离的功能,将其打包为src/org/company/*.groovy
格式的类包。
尝试将所述软件包导入单元测试类时出现问题。在本教程中,使用loadScript
方法导入函数,该方法在加载依赖于另一个文件的类时失败。
参加课程:
package tests
import org.junit.*
import com.lesfurets.jenkins.unit.*
import static groovy.test.GroovyAssert.*
import org.company.UtilFactory
class UtilFactoryTest extends BasePipelineTest {
@Test
void testCall() {
def util = UtilFactory.getUtil("hello")
assertEquals true, true
}
}
src / org / company / UtilFactory.groovy
package org.company
class UtilFactory implements Serializable {
static Util instance
static Util getUtil(script=null) {
if (!(UtilFactory.instance)) {
if (!script) {
// Throws an exception if on the first call to getUtil the
// script parameter is null.
throw new ScriptUndefinedException("script parameter null on initial call to getUtil")
}
UtilFactory.instance = new Util(script)
}
return UtilFactory.instance
}
}
class ScriptUndefinedException extends Exception {
// Parameterless Constructor
public ScriptUndefinedException() {}
// Constructor that accepts a message
public ScriptUndefinedException(String message)
{
super(message);
}
}
哪个给我例外:
jenkins-utilities/src/test/groovy/UtilFactoryTest.groovy: 7:
unable to resolve class org.company.UtilFactory
@ line 7, column 1.
import org.company.UtilFactory
与JenkinsShared库相比,这可能更多是Gradle问题。我刚刚度过了大部分时间,试图准确地弄清楚自己在做错什么,但没有用。
我将非常感谢您为我提供正确的指导。