2017-05-08 30 views
0

我使用VisualStudio的2015年,工作於C++託管單元測試項目,我給過的文本文件的輸入值,但它不能從文件交談值我的Visual C++託管單元測試項目不讀一個輸入文件

我在這裏的代碼

struct employee 
    { 
     char name[20]; 
     char department[25]; 
     double salary; 
     } 
    [TestMethod] 
    void Employee_Test() 
    { 

VEMPLOYEE Expectedemployee; //This is class 

employee emp_Test; 

infile.open("Output_Expected.txt",ios::in); 

     if (!infile) 

      exit(1); 


     for(int i=0;i<3;i++) 
     { 

      infile >> emp_Test.name >> emp_Test.department >> emp_Test.salary; 

      Expectedemployee.push_back(emp_Test); 

     } 
     infile.close(); 
     } 

但INFILE值沒有在我的測試碼讀取, Expectedemployee容器顯示空,

和我的輸入文件是

Robin IT 25000 
    Nikson IT 20000 
    Bob IT 20000 
+1

它是否碰到'exit(-1)'行?如果是這樣,您可能需要檢查文件路徑。文件中是否有空格和新行?成員變量是否是字符串? – doctorlove

+0

感謝您的快速響應, – Lavakusa

+0

文件路徑是正確的,並且在退出(1), 之後也將繼續下一步它也進入循環但結構無法讀取託管測試項目中的文件。 「我在直接項目中應用了相同的代碼(不測試我編寫的程序)它工作正常,但是我的託管C++測試項目的問題是它沒有讀取輸入文本文件」。 是否有任何需要在我的託管C++單元測試項目中應用特殊符號或函數來讀取輸入文件? – Lavakusa

回答

0

對上面的代碼進行了一些小的修復,我成功地在我的機器上運行了代碼(win10/gcc)。所以,我猜想這個問題很可能與您的課程VEMPLOYEE相關,並且可能與push_back()成員函數有關。

我以前VEMPLOYEE作爲vector用於測試目的,我希望你實現你的class像一個容器工作,但我看不到相關的信息的任何尺寸/類型「VEMPLOYEE Expectedemployee;」線。

所以,至少你的文件例程是好的。檢查你的class

+0

您使用的是windows10和gcc? – Lavakusa

+0

@Lavakusa:是的,gcc是除Visual Studio C++之外的另一種編譯器。我沒有使用我的VSC++,因爲它同時存在一些問題。但是,最有可能的是,這應該是沒有效果的。 – Shadi

+0

我修正了我的'VSC++'並用它測試了代碼,它工作。我也嘗試使用簡單的類而不是向量的代碼,它的工作。正如我所說,我懷疑你的'VEMPLOYEE'班。 – Shadi

相關問題