bluepill icon indicating copy to clipboard operation
bluepill copied to clipboard

Bluepill fails

Open AlexanderPan opened this issue 3 years ago • 5 comments

bluepill version: 5.8.0 xcode version: 12.4

run bluepill -c config.json

{
   "xctestrun-path": "./output/Build/Products/xxx_iphonesimulator14.4-x86_64.xctestrun",
   "output-dir": "./output/bluepill/",
   "runtime": "iOS 14.4",
   "num-sims": 6
}
2021-03-04 11:58:18.372 bluepill[8104:2796488] Debug Enabled == 0
{8104} 20210304.115819 [  INFO  ] (BLUEPILL) Using xctestrun configuration
{8104} 20210304.115819 [  ERROR ] (BLUEPILL) Could not extract bundleID: (null)
2021-03-04 11:58:19.805 bluepill[8104:2796488] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKeyedSubscript:]: key cannot be nil'
*** First throw call stack:
(
	0   CoreFoundation                      0x00007fff204876af __exceptionPreprocess + 242
	1   libobjc.A.dylib                     0x00007fff201bf3c9 objc_exception_throw + 48
	2   CoreFoundation                      0x00007fff2053ba9a -[__NSCFString characterAtIndex:].cold.1 + 0
	3   CoreFoundation                      0x00007fff20547a1f -[__NSDictionaryM setObject:forKeyedSubscript:].cold.2 + 0
	4   CoreFoundation                      0x00007fff203d587e -[__NSDictionaryM setObject:forKeyedSubscript:] + 999
	5   bluepill                            0x00000001048e5439 +[BPXCTestFile BPXCTestFileFromDictionary:withTestRoot:andXcodePath:andError:] + 1777
	6   bluepill                            0x00000001048d1056 +[BPApp testsFromXCTestRunDict:andXCTestRunPath:andXcodePath:withError:] + 574
	7   bluepill                            0x00000001048d160e +[BPApp appWithConfig:withError:] + 1049
	8   bluepill                            0x00000001048c8689 main + 971
	9   libdyld.dylib                       0x00007fff20330631 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
fish: 'bluepill -c config.json' terminated by signal SIGABRT (Abort)

AlexanderPan avatar Mar 04 '21 04:03 AlexanderPan

@AlexanderPan We use Bazel variant which uses test-plan-path instead of xctestrun-path and v5.8.0 works fine. Let me try the Xcode version using xctestrun-path and get back to you. Meanwhile, can you examine the contents of file referred by bp/src/SimulatorHelper.m#L157 and why the NSDictionary is coming out to be (null) for you?

ravimandala avatar Mar 05 '21 04:03 ravimandala

@AlexanderPan would you be able to share a redacted version of this file:

"./output/Build/Products/xxx_iphonesimulator14.4-x86_64.xctestrun" ?

chenxiao0228 avatar Mar 06 '21 00:03 chenxiao0228

@chenxiao0228

xcodebuild build-for-testing \
    -enableCodeCoverage YES \
    -workspace xxx.xcworkspace \
    -scheme xxxUITests \
    -destination "platform=iOS Simulator,name=iPhone 12 Pro Max" \
    -configuration Tests \
    -derivedDataPath 'output/' \
    | xcpretty

iphonesimulator14.4-x86_64.xctestrun.zip

AlexanderPan avatar Mar 08 '21 03:03 AlexanderPan

@ravimandala

https://github.com/linkedin/bluepill/blob/master/bp/src/BPXCTestFile.m#L171

My .xctestrun file DependentProductPaths contains apple watch extension. At TESTROOT/Tests-iphonesimulator/AppleWatchBarImg not found Info.plist.

When I remove DependentProductPaths apple watch extension path. It work.

Wrong path : TESTROOT/Tests-iphonesimulator/AppleWatchBarImg Correct path: TESTROOT/Tests-watchsimulator/AppleWatchBarImg.app

AlexanderPan avatar Apr 26 '21 03:04 AlexanderPan

@ravimandala i am building my app using the following command: bazelisk build --config=Debug /MyApp

What is the value I need to use for test-plan-path

I am able to generate .xctestrun for xctestrun-path but I am not sure what the value is for the key test-plan-path

parikhparth23 avatar Oct 31 '22 23:10 parikhparth23