2011-10-06 11 views
6

Tôi đang cố gắng sử dụng Fitnesse để giao diện với một số mã C++, nhưng tệp dự án Fit Cpp được cung cấp trên trang web fitnesse.org không hoạt động (đó là VC++ 6 mà tôi không có nhưng tôi có Visual Studio 2005 và năm 2008). Tôi thậm chí không thể có vẻ để mở tập tin giải pháp trong VS2005 hoặc VS2008 (có thể bởi vì nó đã được tạo ra trong VC + + 6?).Có cách nào để kết hợp Fitnesse vào mã C++ không?

Có ai có thể làm việc này không? Có cách nào tôi có thể viết một thử nghiệm thử nghiệm trong C# mà giao tiếp với mã C + +? Nếu vậy, làm thế nào để tôi đi về việc này.

Dưới đây là trang web với mã: http://fitnesse.org/FrontPage.FitServers.CppFit.CppTestTools.SetUpCppTestTools

Lý tưởng nhất, tôi muốn để có thể làm việc về vấn đề này trong Visual Studio và tránh Cygwin. Tôi chỉ nên cắn viên đạn và đi với Cygwin ... không chắc chắn rằng thậm chí sẽ làm việc hoặc là ... đã không cố gắng.

Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn trước.

Trả lời

2

Sử dụng C++/CLI là một tùy chọn. Bằng cách đó bạn có thể sử dụng fitSharp làm cầu nối từ FitNesse cho đến mã fixture của bạn, nhưng mã fixture của bạn có thể gọi trực tiếp vào C++.

Đây là ví dụ đơn giản về kiểm tra lớp Máy tính. Thứ nhất, đây là mã C++ chúng ta muốn kiểm tra:

class Calculator 
{ 
    public: 
    int Add(int x, int y) 
    { 
     return x + y; 
    } 
}; 

và đây là mã cố định C++/CLI:

public ref class CalculatorFixture 
{ 
    public: 
    property int X; 
    property int Y; 
    property int Z; 

    void Execute() 
    { 
     Calculator calculator; 
     Z = calculator.Add(X,Y); 
    } 
}; 

Các trang wiki FitNesse sẽ trông như thế này:

!define TEST_SYSTEM {slim} 
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,C:\fitnesse\fitsharp\fitsharp.dll %p} 
!define TEST_RUNNER {C:\fitnesse\fitsharp\Runner.exe} 

!path c:\CalculatorFixture.dll 

!|CalculatorFixture| 
|X   |Y   |Z?  | 
|2   |2   |4   | 
|3   |4   |7   | 

Một vấn đề cần lưu ý là các DLL C++/CLI nói chung là 32 bit hoặc 64 bit, trong khi đó runner fitSharp là 'bất kỳ cpu' nào. Vì vậy, nếu bạn xây dựng DLL C++/CLI của bạn như là 32-bit và cố gắng sử dụng fitSharp với nó trên một hệ điều hành 64-bit, bạn sẽ nhận được một lỗi 'định dạng không chính xác'. Trong trường hợp đó, hãy xây dựng DLL C++/CLI là 64-bit, hoặc sử dụng corflags để buộc runner runner (Runner.exe) là 32-bit.

+0

Câu trả lời hay, nhưng tôi cần thêm trợ giúp. Có quá nhiều cách để thiết lập các dự án Visual Studio và điều này giả định tôi biết làm thế nào để làm điều đó cho mã C++/CLI. Ngoài ra, tôi muốn làm rõ rằng tôi cần truy cập mã C++ thông qua một DLL kế thừa đã được tạo và tôi không thể thực hiện bất kỳ thay đổi nào đối với mã C++. Cảm ơn sự giúp đỡ –

+0

Trên cài đặt VS 2008 và 2010 của bạn, bạn tạo một C++/CLI DLL qua Dự án mới-> Ngôn ngữ khác-> Visual C++ -> CLR-> Class Library. Việc truy cập một tệp DLL cũ sẽ không có vấn đề gì - chỉ cần sử dụng một lib nhập như bạn sẽ làm từ một ứng dụng C++ chuẩn. – Andy

+0

Bạn có thể vui lòng xem câu hỏi của tôi tại đây http://stackoverflow.com/questions/32903687/working-with-fitnesse-fitsharp-and-c –

0

Quay lại thời gian VC6 không có tệp giải pháp. Thay vào đó, VC6 đã sử dụng không gian làm việc, được lưu trữ trong các tệp .dsw. Các tệp dự án là .dsp.

Nếu bạn mở .dsw hoặc .dsp trong một Visual Studio mới hơn, nó sẽ nhắc bạn chuyển đổi nó và điều đó sẽ dẫn đến tệp .sln và .vcproj mới được tạo cho dự án. Tôi đã chuyển đổi nhiều dự án phức tạp từ VC6 sang VS 2005, 2008 và 2010, theo kinh nghiệm của tôi, công việc chuyển đổi hoạt động khá đáng tin cậy. Nếu có bất kỳ vấn đề với chuyển đổi VS sẽ cho bạn thấy rằng trong nhật ký chuyển đổi.

+0

Hmmm không được nhắc nhở để chuyển đổi. –

+0

Điều đó không thể. Vui lòng kiểm tra thư mục chứa tệp dsw/dsp và đảm bảo không còn sót lại .sln/.vcproj từ các lần thử trước đó. Xóa tất cả những điều đó và thử lại.Khi quá trình chuyển đổi được thực hiện, bạn cần mở nhật ký chuyển đổi để biết liệu có bất kỳ sự cố nào không. – Miguel

+0

Tôi vừa thử điều này. Tôi đã được yêu cầu chuyển đổi, nhưng trình chuyển đổi không hoạt động, tôi không nhận được gì cả. Nếu bạn muốn xây dựng VS, tôi khuyên bạn nên tạo các dự án mới từ bên trong VS. Bạn có thể mở các tệp dsp mà bạn quan tâm trong việc tạo lại trong notepad và xem danh sách các tệp và tùy chọn được sử dụng. – Miguel