问题标签 [gh-unit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
695 浏览

unit-testing - GH-Unit 和 Objective C++

我有一个使用 GHUnit 进行单元测试的 iPhone 项目。最近,我需要实现复数并重载一些运算符以简化 FFT 的计算。这里的目标是创建一种干净的方式来执行 FFT,而不需要像 FFTW 这样的库使用的所有可能功能的开销,从这个意义上说,我可以进一步自定义我想在我的 FFT 中执行的计算数量(所以我降低了分解这个或传统 DFT 中使用的那个的复杂性)。

简而言之,这就是为什么我决定用 C++ 实现我自己的 FFT 库,而不是使用 FFTW。然而,这给 GHUnit 带来了一些问题。我的所有生产目标都与我的 FFT 库的集成正常工作,但 GHUnit 拒绝工作。具体来说,我遇到了 GHComposeString 之类的链接器错误。这只发生在我的单元测试目标中。我想知道这个问题可能是什么?起初,我怀疑这可能是因为 C 与 C++ 在函数名称的错位方式上存在差异,但它似乎不会影响项目的其余部分,只是 GHUnit 部分。

任何将 C++ 与 GHUnit 混合的帮助表示赞赏。

0 投票
2 回答
863 浏览

iphone - GH-Unit 和“未定义符号”错误

我正在使用 GH-Unit 进行单元测试。我已经按照说明进行了设置,但在这一行出现“未定义符号”错误:

如果我添加ChecklistAppDelegateTests目标,未定义的符号错误就会消失,但我会收到 37 个以上的错误,我的 AppDelegate 中的 Core Data 类的每个声明都有一个错误(有很多)。他们中的大多数是形式,expected specifier-qualifier-list before 'NSPersistentStoreCoordinator'

我想我可以通过将我的Tests目标与 Core Data 框架链接来解决这个问题,但这没有用。我也尝试#import <CoreData/CoreData.h>了我的 AppDelegate 文件,但这也不起作用。

有任何想法吗?我已经尝试删除所有 GH-Unit 的痕迹并重新添加了几次,但它仍然无法正常工作。


这是构建结果中的错误

0 投票
3 回答
2429 浏览

objective-c - 用于单元测试 Objective-C 代码的 GH-Unit,为什么会出现链接错误?

我正试图深入到使用 Xcode 进行单元测试的非常糟糕的世界(这似乎是一个令人费解的过程。)

基本上我有这个测试类,试图测试我的 Show.h 类

但是,当我尝试构建和运行我的测试时,它会抱怨这个错误:-

未定义的符号:

“_OBJC_CLASS_$_Show”,引用自:

ld:未找到符号

collect2: ld 返回 1 个退出状态

现在我假设这是一个链接错误。我尝试按照此处说明中的每个步骤进行操作:-

http://github.com/gabriel/gh-unit/blob/master/README.md

这些说明的第 2 步让我感到困惑:-

在 Target 'Tests' Info 窗口的 General 选项卡中:

添加链接库,在 Mac OS X 10.5 SDK 部分下,选择 GHUnit.framework

添加链接库,选择您的项目。

添加直接依赖项,然后选择您的项目。(这将导致您的应用程序或框架在测试目标之前构建。)

当所有项目都接受 .dylib、.framework 和 .o 文件时,我应该如何将我的项目添加到链接库列表中?

0 投票
6 回答
4719 浏览

objective-c - OCUnit 测试嵌入式框架

更新:我最终放弃并将 GHUnit 添加到我的项目中。我在几分钟内就启动并运行了 GHUnit。

更新:您可以在此处下载 Xcode 项目:http: //github.com/d11wtq/Cioccolata

我已经在我的 Xcode 项目中添加了一个单元测试目标,但是它在构建时找不到我的框架,说:

Test.octest could not be loaded because a link error occurred. It is likely that dyld cannot locate a framework framework or library that the the test bundle was linked against, possibly because the framework or library had an incorrect install path at link time.

我的框架(主要项目目标)设计为嵌入式,因此安装路径为@executable_path/../Frameworks.

我已将该框架标记为测试目标的直接依赖项,并将其添加到“Link Binary with Libraries”构建阶段。

此外,我添加了“复制文件”的第一步(在构建依赖项之后),它只是将框架复制到单元测试包的框架目录。

有人有这方面的经验吗?我不确定我错过了什么。

编辑 | 我很确定我不应该这样做,因为框架不可执行,但我没有设置“测试主机”和“捆绑加载器”。这应该(据我了解)一切正常,因为测试包与框架链接,并且会像任何其他包一样加载它。

编辑 | 我想我快到了。我阅读了以下文章,该文章规定使用@rpath 而不是@executable_path。

http://www.dribin.org/dave/blog/archives/2009/11/15/rpath/

在这种情况下,它非常有意义,因为 OCUnit 测试包不是可执行文件,它是一个普通的旧包,所以 @executable_path 不兼容。所以现在我的框架将其安装目录设置为@rpath,并且测试目标将其运行时搜索路径(rpath)定义为构建目录。这让我不必将框架复制到测试包中,这意味着总体上生成的框架在本质上更加灵活,因为它可以存在于任何地方。

现在,我也意识到我应该在 Test 目标上设置 Bundle Loader,所以现在将其设置为框架二进制文件的路径。

我可以构建测试目标,并且可以从框架中#import 类,没有错误。但是,一旦我尝试从框架中实例化一个类,我就会收到以下错误:

/Developer/Tools/RunPlatformUnitTests.include:412: note: Started tests for architectures 'i386' /Developer/Tools/RunPlatformUnitTests.include:419: note: Running tests for architecture 'i386' (GC OFF) objc[50676]: GC: forcing GC OFF because OBJC_DISABLE_GC is set Test Suite '/Users/chris/Projects/Mac/Cioccolata/build/Debug/Test.octest(Tests)' started at 2010-05-21 12:53:00 +1000 Test Suite 'CTRequestTest' started at 2010-05-21 12:53:00 +1000 Test Case '-[CTRequestTest testNothing]' started. /Developer/Tools/RunPlatformUnitTests.include: line 415: 50676 Bus error "${THIN_TEST_RIG}" "${OTHER_TEST_FLAGS}" "${TEST_BUNDLE_PATH}" /Developer/Tools/RunPlatformUnitTests.include:451: error: Test rig '/Developer/Tools/otest' exited abnormally with code 138 (it may have crashed). Command /bin/sh failed with exit code 1

我的测试方法只是分配并随后发布我创建的一个 HelloWorld 类,以帮助调试此设置:

如果我将这些代码行替换STAssertTrue(YES, @"Testing nothing");为错误消失,即使该类仍在导入中。

0 投票
1 回答
704 浏览

objective-c - GHUnitIOS 构建错误

我一直试图让 gh-unit 在 iOS 项目中工作,但我遇到了一个奇怪的构建错误。我正在使用 4.2 iOS SDK 和 XCode 3.2.5。

我遵循了本教程:

http://4arrowsmedia.com/2010/09/ghunit-setup/

而且我得到了与第一条评论中的人相同的构建错误。

有趣的是,我只在使用 .pch 文件时收到此错误。如果我不使用一个,那么一切都运行良好。我想使用 .pch 文件,因为我在整个项目中使用了很多头文件,并且我不想将它们包含在每个文件中。

0 投票
1 回答
1268 浏览

unit-testing - 为什么 gh-unit 比 SenTestCase 好(在 Xcode4 中)?

这篇文章“Xcode 4 中的单元测试”讨论了单元测试,让我知道最好的解决方案“gh unit”,但我知道 xcode4 只提供 SenTestCase ,所以在这里提问以了解更多选择 gh-unit 的原因?而现在 xcode4 提供了原生的单元测试框架,你认为这是现在最好的选择吗?

0 投票
2 回答
441 浏览

objective-c - 如何在不点击运行按钮的情况下启动 GHUnit 测试?

我使用 GHUnit 框架来测试静态库。此时我需要点击按钮 Run 来开始我的测试。但是我想在应用程序启动时开始测试,因为我需要 teamcity 启动我的 testApp。那么如何修改标准 UI 并自动开始测试呢?

0 投票
3 回答
765 浏览

unit-testing - GHUnit 框架中的 JUnitXml 格式

有人知道如何使用 GHUnit 作为测试结果创建 xml 报告吗?

我喜欢那样,但.xml文件没有出现......

GHUNIT_AUTORUN=1 WRITE_JUNIT_XML=YES xcodebuild -project Tests.xcodeproj -sdk iphonesimulator4.3 -target 测试

0 投票
1 回答
602 浏览

xcodebuild - GHUnit CLI 构建:Availability.h 错误

我正在尝试对在 Xcode 中构建良好的 GHUnit 目标进行命令行构建。我正在运行以下命令来构建:

GHUNIT_CLI=1 xcodebuild -target BasicBrowserUnitTest -configuration Debug -sdk iphonesimulator4.0 build

它相处得很好,直到它在 SDK 头文件 Availability.h 中发现错误:

/Xcode4 GM/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.0.sdk/usr/include/AvailabilityInternal.h:56:42:错误:运算符'<'没有左操作数

显然,我没有对 Apple 的东西进行任何更改,为什么会出现这个错误,我该如何解决?

0 投票
2 回答
1387 浏览

iphone - iPhone 上的 GHUnit 代码覆盖率

我最近一直在学习如何使用 GHUnit for iPhone 编写单元测试。但是,我不知道如何通过 xCode 4 设置代码覆盖率来处理这个问题。

googletubes(不知何故)在这件事上并不是特别有帮助。