2012-08-10 34 views
15

Làm cách nào để chạy dự án .java TestNG từ một dòng lệnh?Cách chạy TestNG từ dòng lệnh

Tôi đã đọc qua các tài liệu TestNG, và thử các sau đây để avail không có:

C:\projectfred> java org.testng.TestNG testng.xml 

... với file testng.xml sau đây trong dự án của tôi:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="SuiteAll" verbose="1"> 
    <test name="TestAll"> 
     <packages> 
      <package name="com.project.fred.tests"/> 
     </packages> 
    </test> 
</suite> 

Các lỗi Tôi nhận được điều này:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG 
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: org.testng.TestNG. Program will exit. 

Rõ ràng, tôi không tham chiếu TestNG chính xác trong dòng lệnh của mình. Có ai biết cách làm việc này không?

Trả lời

12

Bạn cần có testng.jar dưới classpath.

thử C:\projectfred> java -cp "path-tojar/testng.jar:path_to_yourtest_classes" org.testng.TestNG testng.xml

Cập nhật:

Dưới linux Tôi chạy lệnh này và nó sẽ là một số điều tương tự trên Windows hoặc

test/bin# java -cp ".:../lib/*" org.testng.TestNG testng.xml 

Cấu trúc thư mục:

/bin - All my test packages are under bin including testng.xml 
/src - All source files are under src 
/lib - All libraries required for the execution of tests are under this. 

Khi Tôi biên dịch tất cả các nguồn họ đi theo thư mục bin . Vì vậy, trong classpath tôi cần phải xác định nội dung của thư mục bin và tất cả các thư viện như testng.xml, logger vv ở đây. Cũng sao chép testng.xml vào thư mục bin nếu bạn không muốn chỉ định đường dẫn đầy đủ nơi testng.xml có sẵn.

/bin 
    -- testng.xml 
    -- testclasses 
    -- Properties files if any. 
/lib 
    -- testng.jar 
    -- log4j.jar 

Update:

Chuyển đến thư mục MyProject và loại chạy lệnh java giống như cách trình bày dưới đây: -

java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml 

tôi tin rằng các tập tin testng.xml là dưới C:\Users\me\workspace\MyProject nếu không, vui lòng cung cấp đường dẫn đầy đủ cho testng.xml tệp

+0

Cảm ơn. Bạn có thể đưa ra một ví dụ với đường dẫn chính xác không? Tôi đã thử một cái gì đó như C: \ projectfred> java -cp "C: \ path-tojar \ testng.jar: C: \ path_to_yourtest_classes" org.testng.TestNG testng.xml, nhưng như bạn có thể thấy có rất nhiều dấu hai chấm trong đó và nó ném một lỗi. – fuzzyanalysis

+0

bạn có thể vui lòng cho tôi thứ bậc mà các lớp kiểm tra của bạn và các thư viện liên quan có sẵn không? – Patton

+0

(máy Windows 7) Các lớp kiểm tra: C: \ Users \ me \ workspace \ MyProject (đây là nơi tất cả các tệp TestNG .java của tôi). libs liên quan: C: \ Program Files \ jbdevstudio4 \ studio \ plugins. Đó là những gì bạn đã làm sau? – fuzzyanalysis

0

Bạn sẽ cần phải sử dụng dấu chấm phẩy làm dấu phân tách khi xác định đường dẫn tệp jar và lớp trong cửa sổ. Điều này giải quyết được vấn đề.
Giả sử tệp lớp học là dưới C :.

java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml 
0

Sử dụng dấu ";" làm dấu phân cách trên cửa sổ đã được giải quyết.

java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml 

ví dụ: -

java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml 
4

Thanks a lot nó đã thực sự rất hữu ích .. Tôi đã có thể chạy các lớp TestNG tôi sử dụng dòng lệnh, nhưng tôi vẫn muốn quấn lên những điều một lần cuối cùng như sau ..

1) Set the classpath for the testng.jar in the environment variables 
(either manually or via command line). 

2) Create a new folder "MyTest". 

3) Compile all your classes(testNG+java) and put them(.class files) 
in a new folder "Mytest\bin". 

4) Put your 'testng.xml' and '.properties' files to "Mytest\bin" 
again. 

5) Put all the .jar files (testng,selenium... etc) in a new folder 
"Mytest\lib". 

6) Browse to the folder "bin" via command line and run the command 
java -cp "..\lib\*;" org.testng.TestNG testng.xml 

điều này sẽ chạy các trường hợp testNG của bạn.

3

Ok sau 2 ngày kể từ khi cố gắng tìm ra lý do tại sao tôi không thể chạy các ví dụ từ

http://www.tutorialspoint.com/testng/testng_environment.htm đoạn mã sau không làm việc cho tôi

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml 

Việc sửa chữa cho nó thực hiện như sau: Tôi đã đi đến kết luận sau: Trước hết cài đặt nhật thực và tải xuống plugin TestNG. Sau đó làm theo các hướng dẫn từ hướng dẫn để tạo và biên dịch lớp thử nghiệm từ cmd bằng cách sử dụng javac và thêm tệp testng.xml. Để chạy testng.xml trên cửa sổ 10 cmd chạy dòng sau:

java -cp C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml 

để làm rõ: C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\* Con đường trên đại diện cho vị trí của jcommander.jar và testng.jar mà bạn đã tải bằng cách cài đặt plugin TestNG cho nhật thực. Đường dẫn có thể thay đổi để đảm bảo chỉ cần mở vị trí cài đặt của nhật thực, đi tới các plugin và tìm kiếm jcommander.jar. Sau đó sao chép vị trí đó và sau đó thêm * để chọn tất cả các .jars cần thiết.

C:\Test 

Đường dẫn ở trên đại diện cho vị trí của tệp testing.xml trong dự án của bạn. Sau khi nhận được tất cả các đường dẫn cần thiết, hãy thêm chúng bằng cách sử dụng ";".

Tôi hy vọng tôi đã giúp ích cho một số bạn guys :)

1

Chuẩn bị MANIFEST.MF tập tin với nội dung sau

Manifest-Version: 1.0 
Main-Class: org.testng.TestNG 

Gói tất cả các thử nghiệm và phụ thuộc lớp trong jar cùng, nói tests.jar

jar cmf MANIFEST.MF tests.jar -C folder-with-classes/ . 

Thông báo theo sau ".", Thay thế folder-with-classes/ bằng tên hoặc đường dẫn thư mục thích hợp.

Tạo testng.xml với nội dung như dưới đây

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" > 
<suite name="Tests" verbose="5"> 
    <test name="Test1"> 
    <classes> 
     <class name="com.example.yourcompany.qa.Test1"/> 
    </classes> 
    </test> 
</suite> 

Thay com.example.yourcompany.qa.Test1 với đường dẫn đến class Test của bạn.

Chạy thử nghiệm của bạn

java -jar tests.jar testng.xml 
Các vấn đề liên quan