如何在Netbeans中为具有Junit测试类的ant项目创建和运行JMH?

jei2mxaa  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(185)

我想为我的ant项目创建JMH类,而不创建Maven项目(如官方网站http://openjdk.java.net/projects/code-tools/jmh/上所建议的)。
基本上,我有一个包含Restful服务的ant项目,其中添加了Junit测试类,并且我希望对测试类进行基准测试。
这是我的示例测试类,运行正常(忽略任何逻辑错误):

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import javax.ejb.embeddable.EJBContainer;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class ManipulateBeanTest {

private static EJBContainer container;

@BeforeClass
public static void setUpClass() {
    Map<String, Object> properties = new HashMap<>();
    properties.put(EJBContainer.MODULES, new File("build/jar"));
    container = EJBContainer.createEJBContainer(properties);
    System.out.println("Opening the container");
}

@AfterClass
public static void tearDownClass() {
    container.close();
    System.out.println("Closing the container");
}

@Test
public void testInsert() throws Exception {
    System.out.println("insert");
    char code = 'S';
    double rate = 99.00;

    // Lookup the EJB
    System.out.println("Looking up EJB...");
    ManipulateBean instance = (ManipulateBean) container.getContext().lookup("java:global/classes/ManipulateBean");

    System.out.println("Inserting entities...");
    instance.insert(code, rate);
    String exp = "S";

    String object = instance.verify(code);
    System.out.println("JPA call returned: " + object);
    System.out.println("Done calling EJB");

    Assert.assertTrue("Unexpected number of entities", (exp.equals(object)));
    System.out.println("..........SUCCESSFULLY finished embedded test");

}

}
我正在使用Netbeans,请建议。

zlhcx6iw

zlhcx6iw1#

JMH工作区中有一个Ant sample,您可以使用它将其构建到Ant工作流中。

jmh-ant-sample $ ant 

BUILD SUCCESSFUL
Total time: 0 seconds

jmh-ant-sample $ java -jar dist/benchmarks.jar 
# JMH 1.18 (released 3 days ago)
...

尽管不推荐这样做,而且您最好使用具有适当依赖项管理的构建系统,甚至将该示例重写为Ivy也会更好。

相关问题