Files
test/Documentation/TEST_ANALYZER.md
2026-03-13 16:03:47 +07:00

3.9 KiB

Kiểm Tra Analyzer Hoạt Động

Vấn Đề Hiện Tại

Trong file CdlgQuickBar.cs:

  • Dòng 42: GetCurPanel1() được gọi từ UpdateShortcuts() (KHÔNG có #if UNITY_EDITOR)
  • Dòng 440-444: GetCurPanel1() được định nghĩa TRONG #if UNITY_EDITOR

Đây là trường hợp analyzer cần phát hiện!

Các Bước Kiểm Tra

Bước 1: Đảm Bảo Analyzer Đã Được Thêm Vào .csproj

Analyzer đã được thêm vào Assembly-CSharp.csproj tại dòng 62:

<Analyzer Include="E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll" />

Bước 2: Rebuild Analyzer

Analyzer đã được rebuild với logic cải thiện.

Bước 3: Reload Project trong Visual Studio

QUAN TRỌNG: Bạn cần reload project để analyzer hoạt động:

  1. Đóng Visual Studio hoàn toàn
  2. Mở lại Visual Studio bằng cách:
    • Double-click vào perfect-world-unity.sln
    • Hoặc từ Unity: Assets > Open C# Project
  3. Đợi Visual Studio load project (có thể mất vài giây)

Bước 4: Kiểm Tra Warnings

Sau khi Visual Studio load xong:

  1. Mở file CdlgQuickBar.cs trong Visual Studio

  2. Tìm dòng 42: int nCurPanel9 = GetCurPanel1();

  3. Bạn sẽ thấy:

    • Squiggly line (gạch chân màu vàng/xanh) dưới GetCurPanel1()
    • Hover chuột sẽ thấy warning message
  4. Mở Error List:

    • View > Error List (hoặc Ctrl+W, E)
    • Chọn tab "Warnings"
    • Tìm warning với ID UNITY_EDITOR_ONLY_USAGE
    • Message: Method/Type 'GetCurPanel1' is only available in UNITY_EDITOR and may cause build errors

Bước 5: Nếu Vẫn Không Thấy Warning

Kiểm tra 1: Analyzer DLL tồn tại

Test-Path "E:\Projects\perfect-world-unity\UnityEditorOnlyAnalyzer\bin\Release\netstandard2.0\UnityEditorOnlyAnalyzer.dll"

Phải trả về True

Kiểm tra 2: .csproj có analyzer

Mở Assembly-CSharp.csproj và tìm dòng có UnityEditorOnlyAnalyzer.dll

Kiểm tra 3: Output Window

  1. View > Output
  2. Chọn "Show output from: Build" hoặc "IntelliSense"
  3. Xem có lỗi load analyzer không

Kiểm tra 4: Force Reload

  1. Đóng Visual Studio
  2. Xóa folder obj trong project root (nếu có)
  3. Mở lại Visual Studio

Kiểm tra 5: Test với File Đơn Giản

Tạo file test Assets/TestAnalyzer.cs:

#if UNITY_EDITOR
public class EditorOnlyTest
{
    public static void TestMethod() { }
}
#endif

public class RegularClass
{
    public void Test()
    {
        EditorOnlyTest.TestMethod(); // ⚠️ Nên có warning ở đây
    }
}

Nếu file test này có warning nhưng CdlgQuickBar.cs không có, có thể là vấn đề với logic analyzer.

Debug Analyzer

Nếu analyzer vẫn không hoạt động, có thể cần debug:

  1. Kiểm tra Visual Studio Version: Analyzer cần Visual Studio 2019+ hoặc VS Code với C# extension
  2. Kiểm tra .NET SDK: Cần .NET SDK để build analyzer
  3. Kiểm tra Logs: Xem Output window trong Visual Studio

Giải Pháp Tạm Thời

Nếu analyzer không hoạt động ngay, bạn có thể:

  1. Wrap code gọi trong #if UNITY_EDITOR:
#if UNITY_EDITOR
            int nCurPanel9 = GetCurPanel1();
#else
            int nCurPanel9 = 1; // Default value
#endif
  1. Hoặc di chuyển GetCurPanel1() ra ngoài #if UNITY_EDITOR nếu nó cần được gọi từ runtime code.

Kết Luận

Analyzer đã được cải thiện và rebuild. Bạn cần:

  1. Analyzer đã được thêm vào .csproj
  2. Analyzer đã được rebuild
  3. Reload Visual Studio để analyzer hoạt động
  4. Kiểm tra warnings trong Error List

Sau khi reload Visual Studio, bạn sẽ thấy warning ở dòng 42 của CdlgQuickBar.cs.