Bạn sẽ có thể thực hiện việc này với Maven Exec Plugin. Đối với dự án của tôi, tôi đã chọn tạo hồ sơ điểm chuẩn có thể chạy với lệnh maven mvn compile -P benchmarks
.
Để cấu hình một cái gì đó như thế này, bạn có thể thêm một cái gì đó dọc theo dòng sau đây để pom.xml
của bạn, xác định phạm vi của classpath như kiểm tra sử dụng <classpathScope>
tag:
<profiles>
<profile>
<id>benchmarks</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<commandlineArgs>com.stackoverflow.BencharkClass,com.stackoverflow.AnotherBenchmark</commandlineArgs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Ngoài ra, nếu bạn' muốn chỉ định rất nhiều tùy chọn cho caliper, nó có lẽ là dễ dàng hơn để sử dụng <arguments>
tags:
<executions>
<execution>
<id>caliper</id>
<phase>compile</phase>
<goals>
<goal>java</goal>
</goals>
<configuration>
<classpathScope>test</classpathScope>
<mainClass>com.google.caliper.runner.CaliperMain</mainClass>
<arguments>
<argument>com.stackoverflow.BencharkClass</argument>
<argument>--instrument</argument>
<argument>runtime</argument>
<argument>-Cinstrument.allocation.options.trackAllocations=false</argument>
</arguments>
</configuration>
</execution>
</executions>
tùy chọn cấu hình hơn (li ke -Cinstrument.allocation.options.trackAllocations
ở trên) có thể được tìm thấy here và các tùy chọn thời gian chạy khác (như --instrument
ở trên) có thể được tìm thấy here.
Sau đó, nếu bạn đang sử dụng các plugin Eclipse m2 Maven, bạn có thể nhấp chuột phải vào thư mục dự án của bạn và chọn Run as... -> Maven Build...
và nhập cái gì đó như clean install
trong hộp Goals
đầu vào và benchmarks
trong hộp Profiles
nhập và nhấp Run
và bạn sẽ thấy đầu ra trong bảng điều khiển Eclipse của bạn. Điều quan trọng cần lưu ý là tôi đã sử dụng bản dựng ảnh chụp nhanh của Caliper bằng cách kiểm tra nguồn bằng cách sử dụng git clone https://code.google.com/p/caliper/
, được đề xuất tại thời điểm bài đăng này để tận dụng lợi thế của API mới nhất.
Cấu hình chạy Eclipse chỉ liệt kê "Maven Dependencies" cho đường dẫn lớp của tôi. Nó dường như không tách biệt các phụ thuộc thử nghiệm và không kiểm tra. Bạn đã xác minh rằng Caliper đang thực sự được đưa vào chưa? – gk5885
@ gk5885, nó có sẵn trong Package Explorer, có sẵn trên đường dẫn lớp khi chạy cấu hình kiểu 'JUnit' nhưng không có sẵn trên đường dẫn lớp khi chạy cấu hình kiểu 'Ứng dụng Java'. –
Tôi không chắc tôi hoàn toàn hiểu kịch bản của bạn, đặc biệt là "chạy một lớp tùy ý với các phụ thuộc kiểm tra trong đường dẫn lớp". Bạn không thể chỉ cần tạo và chạy một thử nghiệm JUnit mà sẽ làm chính xác những gì CaliperMain thường làm trong phương pháp chính của nó? – Morfic