2015-12-02 22 views
7

Tôi đã sử dụng NUnit Runner trong Atlassian Bamboo (phiên bản mới nhất) với NUnit 2 nhưng sau khi nâng cấp lên NUnit 3, nó không còn hoạt động nữa. Nó xuất hiện một cái gì đó thay đổi với dòng lệnh trong NUnit 3. Bất cứ ai cũng biết làm thế nào để làm cho NUnit 3 làm việc trong Atlassian Bamboo? Hoặc các nhà phát triển NUnit có thể xem xét khả năng tương thích ngược với thay đổi đột phá này không?Làm thế nào để chạy NUnit Runner trong Atlassian Bamboo với NUnit 3

tôi nhận được lỗi sau:

Invalid argument: -xml=TestResults-Rev_02f5436a0a70cd539bd3b77218fb48cbe3262954-Build_12.xml

Cảm ơn bạn

+0

cố gắng sử dụng biến thể của tôi mô tả ở đây http://stackoverflow.com/questions/40087902/bamboo-nunit-parser-task-incorrectly-parses-the-results-from-nunit3-console-exe – Tatiana

Trả lời

1

Hy vọng rằng đội Atlassian sẽ cập nhật tre để hỗ trợ NUnit 3 sớm. Tôi sẽ đề nghị gửi yêu cầu với họ. Nhóm NUnit sẽ sẵn lòng giúp đỡ họ nếu họ có bất kỳ câu hỏi nào.

NUnit sẽ không hỗ trợ dòng lệnh tương thích ngược, nhưng bạn có thể có khả năng nhận được Tre làm việc ngay bây giờ bằng cách sửa đổi nhiệm vụ thực hiện kiểm tra.

Tôi chưa sử dụng Bamboo, nhưng trên AppVeyor, chúng tôi đã vô hiệu hóa tính năng phát hiện và chạy thử nghiệm tự động, sau đó thay vì sử dụng tác vụ NUnit được xây dựng, chúng tôi thực hiện trực tiếp bảng điều khiển nunit3 mới.

Nếu Bamboo phân tích và hiển thị các kết quả kiểm tra, bạn có thể hướng dẫn NUnit 3 để sản xuất XML trong định dạng phiên bản 2 với lệnh --result=TestResults.xml;format=nunit2

1

Ngoài ra, FYI, tùy chọn -xml đã được chấp thuận cho 3 năm!

Tôi giả sử rằng tre tạo ra các tùy chọn dòng lệnh cho NUnit dựa trên các cài đặt do người dùng cung cấp. Bởi vì NUnit 3.0 là một sự thay đổi lớn từ loạt v2, các nhà phát triển có thể muốn coi nó như một khuôn khổ hoàn toàn mới. Trên thực tế, động cơ NUnit 3.0 thực hiện chính xác điều đó, xử lý NUnit V2 như một khuôn khổ "ngoại lai" và sử dụng một trình điều khiển đặc biệt để chạy thử nghiệm của nó.

7

Giải pháp đơn giản nhất là tạo tệp dơi thay thế đối số -xml thành --result.

Tạo tệp bat trong thư mục Á hậu Nunit (theo mặc định C: \ Program Files (x86) \ NUnit.org \ nunit-console) và sao chép các dòng bỏ vào đó.

@echo off 
SET "var=%*" 
CALL SET var=%%var:-xml=--result%% 
nunit3-console.exe %var%;format=nunit2 

Sau đó, sử dụng địa chỉ tệp dơi làm đường dẫn thực thi Nunit runner.

+0

tôi đang nhận được một lỗi nói rằng nunit3-console.exe không phải là một lệnh được công nhận @Bashir – wintersolider

+1

Xin lỗi vì câu trả lời trễ, nếu bạn đã cài đặt đơn vị runner 3 bạn nên có nunit3-console.exe trong thư mục cài đặt (mặc định là C: \ Program Các tập tin (x86) \ NUnit.org \ nunit-console) và bạn nên chọn tập tin bat trong cùng thư mục, vì vậy tập tin dơi sẽ có thể gửi nunit3-console.exe, bằng cách bạn có thể thử sử dụng đường dẫn đầy đủ cho nunit3-console.exe là tốt. – Bashir

+0

Đặt dấu ngoặc kép quanh lệnh nếu đường dẫn chứa dấu cách. Câu lệnh cuối cùng sẽ trông giống như sau: '"% ~ dp0nunit3-console.exe "% var%; format = nunit2' –

0

Bạn đang gặp phải vấn đề đó vì nunit-3 không còn sử dụng cờ -xml nữa và được thay thế bằng --result. Á hậu nunit tre không udpated và vẫn tạo ra lá cờ được sử dụng bởi các nunit cũ.

Tạo tệp dơi với các nội dung sau. Thay vì sử dụng nunit thực thi trong tre, hãy sử dụng tệp bat.

@echo off 
SET projectvar=%1 
SET xmlvar=%2 
SET executable=C:\Program Files (x86)\NUnit-3.4.1\bin\nunit3-console.exe 
CALL SET xmlvar=%%xmlvar:-xml=--result%% 
SET outputvar=%3;format=nunit2 
SHIFT 
SHIFT 
SHIFT 
SET remvar=%1 
:loop 
SHIFT 
if [%1]==[] GOTO afterloop 
SET remvar=%remvar% %1 
GOTO loop 
:afterloop 
%executable% %projectvar% %xmlvar% %outputvar% %remvar% 
Các vấn đề liên quan