Powermock不断抛出ScriptEngineManager的错误

Jur*_*urn 8 java junit easymock powermock

由于我想在测试中使用来自JUnit的类别,因此我不得不使用PowerMock(在EasyMock之上的powermock来模拟静态)重写一些模拟测试。从RunWith(PowermockRunner.class)到下面;

    @Category(ServerTests.class)
@PrepareForTest(EnvironmentConfig.class)
@PowerMockIgnore( {"javax.management.*", "org.w3c.dom.*", "org.apache.log4j.*", "org.xml.sax.*",   "javax.xml.*"})
public class JmsHelperTest {

    @Rule
    public PowerMockRule rule = new PowerMockRule();

}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我已经抑制了PowerMockIgnore的一些错误,但是最后一个我无法抑制,希望您能提供帮助。

错误:

ScriptEngineManager provider.next():javax.script.ScriptEngineFactory:提供者jdk.nashorn.api.scripting.NashornScriptEngineFactory不是子类型ScriptEngineManager provider.next():javax.script.ScriptEngineFactory:提供者jdk.nashorn.api.scripting.NashornScriptEngineFactory不是子类型2017-06-09 13:37:24,660主要错误未找到语言javascript的ScriptEngine。可用语言为:2017-06-09 13:37:24,776主警告无法找到名为{}的脚本

供加载的软件包参考;

import mypackage.EnvironmentConfig;
import mypackage.category.ServerTests;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.powermock.core.classloader.annotations.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.rule.PowerMockRule;

import static org.easymock.EasyMock.expect;
import static org.hamcrest.core.Is.is;
import static org.junit.Assert.*;
import static org.powermock.api.easymock.PowerMock.mockStatic;
import static org.powermock.api.easymock.PowerMock.replay;
Run Code Online (Sandbox Code Playgroud)

Jur*_*urn 11

哦,我觉得很蠢。我专注于jdk.nashorn,但是当我将javax.script。*添加到PowerMockIgnore时,它解决了错误。