Tôi đang sử dụng VS 2015 Enterprise và tôi đã chạy thử nghiệm đơn vị chung để phân tích mức độ phù hợp của mã. Tôi đang xem danh sách các khối được bao phủ cho mỗi chức năng, và nhìn chung chúng có vẻ đúng. Tuy nhiên, khi tôi nhấp chuột phải vào một phương thức -> "Đi tới mã nguồn", trên một số chức năng, nó sẽ đến đúng vị trí trong mã nguồn (tệp .cpp có liên quan), nhưng trên những người khác, nó cố gắng mở tệp tiêu đề (số dòng nguồn là chính xác, nhưng mã nằm trong tệp .cpp - không phải tệp .h). Điều này ảnh hưởng đến việc làm nổi bật mã nguồn - các chức năng mà VS cho là nằm trong .h không được tô sáng trong .cpp. Tôi không thể xác định bất kỳ sự khác biệt trong các chức năng (cùng một tầm nhìn, cùng một tiêu đề và các tập tin nguồn), ngoại trừ có thể là chủ đề mà họ đang gọi. Bất kỳ ý tưởng tại sao VS nghĩ rằng một số mã trong .h chứ không phải là .cpp?Visual Studio 2015 Mã Bảo hiểm Tệp sai
Trả lời
Dường như, mặc dù VS 2015 hỗ trợ tính năng C++ 11 non-static data member initializers (nó biên dịch chính xác), công cụ phủ sóng cho phép trên tính năng này. Đây là MCVE. Tôi đang sử dụng bản cập nhật VS 14.0.24720.00 1. Để tái tạo, biên dịch chương trình này, sau đó nhận mã bảo hiểm bằng cách chạy nó bằng cách sử dụng Generic Test. Nếu x
được khởi tạo, công cụ bảo hiểm sẽ tìm mã cho hàm tạo trong tệp .h. Nếu bạn lấy ra = 0
, nó xác định chính xác định nghĩa hàm tạo như trong .cpp. Trong mã sản phẩm của tôi, nó không phải là hàm tạo, nhưng các hàm dường như ngẫu nhiên mà công cụ vùng phủ sóng nghĩ đã được định nghĩa trong tệp .h. Việc sửa chữa, trong trường hợp của tôi, chỉ là để di chuyển thành viên dữ liệu khởi tạo vào danh sách khởi tạo constructor.
//.h
class Test
{
public:
Test();
~Test();
void Func1();
void Func2();
void Func3();
int x = 0;
};
.
// .cpp
#include "Test.h"
#include <iostream>
Test::Test()
{
std::cout << "in Test()" << std::endl;
}
Test::~Test()
{
}
void Test::Func1()
{
std::cout << "in Func1" << std::endl;
Func2();
Func3();
}
void Test::Func2()
{
std::cout << "in Func2" << std::endl;
}
void Test::Func3()
{
std::cout << "in Func3" << std::endl;
}
- 1. Visual Studio 2015 Mã Bảo hiểm đã ném - Không thể bật các ràng buộc
- 2. Visual Studio 2015 Mở tệp rất chậm?
- 3. Xem Mã Bảo hiểm Kết quả bên ngoài của Visual studio
- 4. mã số bảo hiểm Android Studio 3/Kotlin
- 5. Visual Studio 2015 chậm
- 6. Bất kỳ .net Mã Bảo hiểm Plugin cho Visual Studio 2010?
- 7. Chạy 'ứng dụng' với Mã Bảo hiểm trong Android Studio
- 8. Bảo hiểm Mã và Kiểm tra Đơn vị Mã Python
- 9. Công cụ bảo hành mã/chi nhánh cho Visual Studio 2015
- 10. Visual Studio 2015: "tsc.exe" đã thoát với mã 1
- 11. Bảo hành mã xuất bản không hoạt động trong TFS 2015/Visual Studio Team Services (là VS Online)
- 12. BIDS cho Visual Studio 2015
- 13. Visual Studio 2012 Kiểm tra giao diện người dùng được mã hóa của ứng dụng web - Mã bảo hiểm
- 14. Cộng đồng Visual Studio 2015 có thể dễ dàng cập nhật lên Visual Studio Professional 2015
- 15. Mã bảo hiểm cho Jest
- 16. Mã bảo hiểm khối finally
- 17. Java - Mã số Bảo hiểm
- 18. Công cụ thám hiểm tệp trong Visual Studio?
- 19. "Sửa mã Roslyn" trong Visual Studio 2015 là gì?
- 20. Visual Studio 2015 Mã Phân tích vs FxCopCmd.exe chênh lệch
- 21. Xcode và Mã số Bảo hiểm
- 22. Visual Studio 2015 không tìm Visual studio 2010
- 23. So sánh Visual studio 2015 và Blend cho Visual Studio
- 24. khai mạc trong Visual Studio 2015
- 25. C++ Sự cố tệp mới trong Visual Studio Express 2015
- 26. Thêm tệp .lib vào dự án trong Visual Studio 2015
- 27. Cách nhận mã bảo hiểm khi thử nghiệm Silverlight
- 28. Visual Studio 2015 không trả lời
- 29. Thiết lập TSLint trong Visual Studio 2015
- 30. java.lang.RuntimeException: Stub! - Bảo hiểm mã Android?
[mcve] sẽ hữu ích. Bạn đang sử dụng chức năng templated? – AndyG
Tôi đồng ý. Không có chức năng templated. – Jeff
Dự án x64 hay x86? Tôi nhớ lại rằng có vấn đề với x64. – AndyG