Je veux tester quelques Swift utilisant XCTest à partir de la ligne de commande si possible.
import XCTest
class LeapTest : XCTestCase {
func testVanillaLeapYear() {
let year = Year(calendarYear: 1996)
XCTAssertTrue(year.isLeapYear);
}
}
J'adorerais l'exécuter à partir de la ligne de commande.
J'ai déjà configuré Xcode pour utiliser les outils de développement de la version bêta:
Sudo xcode-select -s /Applications/Xcode6-Beta.app/Contents/Developer/
Si j'essaye naïvement de l'exécuter, ça se passe comme ça
$ xcrun Swift LeapTest.Swift
LeapTest.Swift:1:8: error: cannot load underlying module for 'XCTest'
import XCTest
^
Est-il possible de l'exécuter directement à partir de la CLI? Ou dois-je créer un projet Xcode?
J'ai pu obtenir la compilation de votre XCTestCase avec la commande suivante:
swiftc \
-F/Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-Xlinker -rpath -Xlinker /Applications/Xcode6-Beta5.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks \
-lswiftCore LeapTest.Swift \
-o LeapTests
Ensuite, vous pouvez exécuter les tests avec xctest
:
xcrun xctest LeapTests
Et pour décomposer ces options de ligne de commande swiftc
:
-F...
ajoute XCTest.framework aux chemins de recherche du framework, ce qui permet de l'importer depuis Swift-Xlinker -rpath ...
s'assure que la bibliothèque partagée XCTest peut être trouvée au moment du chargement-lswiftCore
, J'ai trouvé que xctest
plantait quand il essayait d'exécuter la suite de testsJ'espère que cela pourra aider!
Je pense que le problème est que vous avez votre fichier test.Swift sous l'appartenance cible du projet principal. Assurez-vous que vos fichiers de test Swift appartiennent à la cible de test uniquement.