我怎样才能得到代码覆盖率信息?

How can i get the code coverage percentage information?

我正在尝试在 swift 中进行单元测试。我有一个名为 MyFileManagerSomeViewModel

的两个 class
class MyFileManager {
    static let shared = MyFileManager()
    
    func isStored(atPath path: String) -> Bool {
        return FileManager.default.fileExists(atPath: path)
    }
    func readData(atPath path: String) -> Data? {
        return try? Data(contentsOf: URL(fileURLWithPath: path))
    }
}

class SomeViewModel {
    func getCachedData() -> Data? {
        let path = "xxxxx"
        
        if MyFileManager.shared.isStored(atPath: path) {
            return MyFileManager.shared.readData(atPath: path)
        } else {
            return nil
        }
    }
}

我写了一个测试代码。我不确定这段代码是否会给我 100% 的代码覆盖率。这是单元测试

class LinePhoneTests: XCTestCase {

    override func setUpWithError() throws {
        testGetCachedData()
    }

    func testGetCachedData() {
        let viewModel = SomeViewModel()
        
        let data = viewModel.getCachedData()
        XCTAssertFalse((data != nil))
        
        XCTAssertTrue((data == nil))
    }

}

如何获取代码覆盖率信息?

您可以采取一些措施来监控代码覆盖率以帮助您编写测试。

在您的方案中启用代码覆盖率设置:

打开此菜单项:

然后在您的源文件中,您会在角落看到一个装订线:它将向您显示一个数字,指示执行此行的测试数量,并以红色表示未执行的行。

并且您可以在构建结果中看到代码覆盖率下的百分比:

使用这些工具,您可以编写测试来练习您需要达到 100% 的代码路径,或者您可以判断错过的测试是否重要。