3. Hva er Jenkins?
● Jenkins er en server som automatiserer jobber
● Vi bruker Jenkins til å
○ bygge siste versjon
○ kjøre enhetstester
○ lage pakker til distribusjon
● Jenkins gir oss
○ friksjonsløs bygging
○ enklere release
○ rask tilbakemelding
13. Trips og ticks
Å ha tester er alltid lurt!
● Test for negative resultater / forventede feil
● Alltid test før release!
● Få Jenkins til å klage i chat-rom ;-)
Jenkins kan trenge et klapp på ryggen av og til
● for lite permGen til Maven
Bruk tjenester for å teste server og App 'in the wild' også
● Rollbar
● Pingdom
● Crittercism
14. Komme i gang med Jenkins
brew install jenkins
launchctl load /usr/local/opt/jenkins/homebrew.
mxcl.jenkins.plist
konfigurere http://localhost:8080/
● server
● plugins
● jobb
15. Hva er enhetstester?
● Verifikasjon av logiske kodeenheter
● Minimalt av tilstand og kompleksitet
● Bygges opp av forventede sannheter
● Enkle aksiomer, sant/usant, null/!null
16. Skrive unit-tester; iOS
- (void) test_0003_1_LoginUsingPassword
{
AFHTTPRequestOperation *operation =
[Backend loginEmail:testEmail withPassword:testPassword];
STAssertTrue([self waitFor:operation], @"operation timed out");
STAssertNil(operation.error, @"Login failed: %@", operation.error.description);
// check the user has the predefined data
STAssertTrue(backend.user.ID > 0, @"User ID is not >0");
STAssertTrue([backend.user.primaryEmail isEqualToString:testEmail],
@"Email is different from what we registered");
}
17. Skrive unit-tester; Android
import junit.framework.TestCase;
public class BaseModelTest extends TestCase {
/**
* Test that a null item does not equal a non-null item.
*/
public void testEqualsNull() {
DummyModel d1 = new DummyModel();
DummyModel d2 = null;
assertFalse(d1.equals(d2));
}
/**
* Test an item equals itself (reflexsive property).
*/
public void testEqualsSameObject() {
DummyModel d1 = new DummyModel();
assertTrue(d1.equals(d1));
}