1

我正在尝试使用 Arquillian 为一个已经存在的项目运行一些单元测试。

我的基本测试:

@RunWith(Arquillian.class)
public class InferenceTest {

    @EJB private InferenceEJB inferenceEJB;

    @Deployment
    public static JavaArchive createDeployment() {
        return ShrinkWrap.create(JavaArchive.class)
                .addClasses(...my classes...)
                .addPackages(false, ...packages from my classes...)
                .addAsManifestResource(
                    EmptyAsset.INSTANCE,
                    ArchivePaths.create("beans.xml")
                    );
    }

    @Test
    public void testInference() throws NamingException {
        assertNotNull("Successfully injected an EJB", inferenceEJB);
    }
}

当我用 maven (mvn test) 运行它时,我遇到了一大堆问题。基本上,它们归结为三件事:

  • “严重”消息表明某些 EJB(此处未进行测试,并且未注入此测试使用的任何内容)未解决,例如

严重:部署应用程序时出现异常 [e03a719e-27d5-4cdd-af7f-70831402560c]:无法解析引用本地 ejb-ref 名称=......ExportEJB/managerEJB,本地 3.x 接口 =...... .DataManagerEntity,ejb-link=null,lookup=,mappedName=,jndi-name=,refType=Session PlainTextActionReporterFAILUREDescription:部署期间发生部署 AdminCommandError:部署应用程序时出现异常 [e03a719e-27d5-4cdd-af7f-70831402560c]:无法解决参考 Local ejb-ref name=.......ExportEJB/managerEJB,Local 3.x interface =.......DataManagerEntity,ejb-link=null,lookup=,mappedName=,jndi-name= ,refType=会话。有关详细信息,请参阅 server.log。

  • 测试失败,因为 inferenceEJB 为空。

我试图通过将所有相关的类/包添加到@Deployment 来解决第一个问题,但没有成功。我不知道是什么导致了最后一个。

有人有什么想法吗?

4

0 回答 0