在Arquillian测试中从Classpath加载资源

时间:2014-05-11 17:27:24

标签: java java-ee testing jboss-arquillian

我正在尝试将资源添加到Arquillian收缩包装存档并通过类路径加载它。但是,我没有设法使它工作。我尝试使用addAsResource()和addAsWebInfResource()。下面的版本是我认为应该工作的版本,但不是。任何解决方案?

import static org.junit.Assert.assertNotNull;

import java.io.InputStream;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(Arquillian.class)
public class ResourceLoadingTest {

    @Deployment
    public static WebArchive createDeployment() {
        WebArchive archive = ShrinkWrap.create(WebArchive.class)
                .addAsWebInfResource(new StringAsset("Hello World"),
                        "classes/test.properties");
        System.out.println(archive.toString(true));
        return archive;

    }

    @Test
    public void testLoadResource() {
        InputStream stream = Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("/test.properties");
        assertNotNull(stream);
    }
}

控制台输出:

411ad6b1-7705-406f-ba05-d7f46ca14966.war:
/WEB-INF/
/WEB-INF/classes/
/WEB-INF/classes/test.properties

0 个答案:

没有答案