我们的目标是在持续集成环境中执行我们的单元测试(Jenkins)
(我认为每个问题都必须说明一个人想要实现的目标.也许这个问题实际上可以通过一种非常不同的方式解决)
首先,我们正在讨论具体的,自行开发的硬件.我希望持续集成测试告诉我是否有人在没有告诉所有开发人员的情况下改变了盒子的行为(是的,是的,我知道,这样的事情永远不会发生......)
其次,我们的一些(并非所有)连接使用默认无效的证书,因此我们有代码来检查证书的有效性(SecTrustEvaluate等).当然,理想情况下,我们的测试也会测试该代码.但这似乎太多了.
第三:嗯,如果我能得到真正的交易,为什么我要嘲笑任何东西?IDE没有问题,为什么要命令行.
如果我想要可预测性,我会YES在所有测试中返回;)(我已经看到人们这样做了).不,我想知道代码是否真正适用于我们的设备.这是某种变态的欲望吗?
从命令行运行测试听起来非常简单,但是
xcodebuild -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO clean test
Run Code Online (Sandbox Code Playgroud)
导致一个丑陋的错误:
unsupported build action 'test'
Run Code Online (Sandbox Code Playgroud)
所以我在网上搜索了一篇关于从命令行运行OCUnit测试的文章.
我按照所有步骤操作,我可以从命令行运行我的测试,如下所示:
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
Run Code Online (Sandbox Code Playgroud)
但是,现在对SSL服务器的任何NSURLConnection都将失败,因为"此服务器的证书无效.".从命令行运行测试时,我听说过钥匙串问题,但这是真的吗?是否拒绝任何SSL连接?
从https://github.com/below/SSLTestDemo获取示例.打开它,然后使用Xcode自己的Test⌘U命令运行样本测试.测试应该成功.
现在在命令行上运行测试:
xcodebuild -scheme CITests -sdk iphonesimulator TEST_AFTER_BUILD=YES ONLY_ACTIVE_ARCH=NO clean build
Run Code Online (Sandbox Code Playgroud)
由于"此服务器的证书无效",测试失败.错误.
任何输入都表示赞赏!
我使用了一个非常简单的app应用程序(github上的源代码)UICollectionView.
只要应用程序处于纵向模式,一切正常.但是,当它更改为横向模式时,内容单元格不会被适当调整大小,因此不会显示任何内容.
我认为所有必要的AutoLayout约束都已到位.我知道我可以实现collectionView:layout:sizeForItemAtIndexPath:,但我的目标是尽可能多地使用AutoLayout(只是为了更好地理解AutoLayout).
我在这里错过了什么?
在 macOS 上,是否可以将虚拟相机(例如OBS)视为 CaptureDevice?例如,我看到 Google Chrome 或 Zoom 可以使用此相机,但使用 AVCaptureDevice.DiscoverySession 我无法看到它。
我做错了吗?
var deviceTypes: [AVCaptureDevice.DeviceType] = [.builtInMicrophone, .builtInWideAngleCamera]
#if os(OSX)
deviceTypes.append(.externalUnknown)
#else
deviceTypes.append(contentsOf: [.builtInDualCamera,
.builtInDualWideCamera,
.builtInTelephotoCamera,
.builtInTripleCamera,
.builtInTrueDepthCamera,
.builtInUltraWideCamera])
#endif
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: deviceTypes,
mediaType: nil, position: .unspecified)
result = discoverySession.devices.map { device in
device.localizedName
}
Run Code Online (Sandbox Code Playgroud) 有没有办法在生成预处理输出时告诉 clang 删除注释行?
显然,这是 gcc 和 clang 之间的区别,我还没有找到这样做的选项
谢谢
亚历克斯
更准确地说:我似乎对文件输入有问题,请参阅此示例:
CONTENT="// \$REMOVE BEFORE FLIGHT\$\r\nprintf(\"HelloWorld!\");"
echo "Original:\n$CONTENT"
echo "-------------------------"
echo "From stdin"
echo $CONTENT | cpp -P -E -nostdinc -xc++ -
echo "-------------------------"
echo "From file"
echo $CONTENT > foo.sample
cpp -P -E -nostdinc -xc++ foo.sample
echo "\n What gives?"
补充:看来,-xArgument 已更改。使用-v,我可以在命令行上看到,实际上-x c++是通过的,而当使用文件作为输入时,它被更改为-x c.
知道为什么吗?
我很确定在重新启动设备后为我的应用程序调用了performFetchWithCompletionHandler,而不必在iOS 7引入时打开应用程序.
但是,现在使用我的示例应用程序,当我的手机重启时似乎没有被调用,在iOS 7/Xcode 5和iOS 8/Xcode 6或5上都没有
有人能指出我关于这个问题的明确文件吗?
我很快会使用示例应用更新此问题
ios ×3
autolayout ×1
avfoundation ×1
background ×1
clang ×1
ios6 ×1
jenkins ×1
llvm ×1
macos ×1
obs ×1
ocunit ×1
xcode ×1
xcodebuild ×1