Skip to content

Commit

Permalink
Write html to xcresult dir with relative img src
Browse files Browse the repository at this point in the history
  • Loading branch information
KaneCheshire committed Nov 27, 2018
1 parent 30f861d commit c268a73
Show file tree
Hide file tree
Showing 13 changed files with 383 additions and 254 deletions.
62 changes: 59 additions & 3 deletions XCResultViewer.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
objects = {

/* Begin PBXBuildFile section */
C37D665A21ADF98200CC2BD9 /* TestableSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D665921ADF98200CC2BD9 /* TestableSummary.swift */; };
C37D665C21ADF99700CC2BD9 /* TestSummaryGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D665B21ADF99700CC2BD9 /* TestSummaryGroup.swift */; };
C37D665E21ADF9CF00CC2BD9 /* TestSummarySubGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D665D21ADF9CF00CC2BD9 /* TestSummarySubGroup.swift */; };
C37D666021ADF9FF00CC2BD9 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D665F21ADF9FF00CC2BD9 /* Test.swift */; };
C37D666221ADFA1E00CC2BD9 /* SubTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D666121ADFA1E00CC2BD9 /* SubTest.swift */; };
C37D666421ADFA8E00CC2BD9 /* FailureSummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D666321ADFA8E00CC2BD9 /* FailureSummary.swift */; };
C37D666621ADFAA900CC2BD9 /* ActivitySummary.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D666521ADFAA900CC2BD9 /* ActivitySummary.swift */; };
C37D666821ADFAC500CC2BD9 /* Attachment.swift in Sources */ = {isa = PBXBuildFile; fileRef = C37D666721ADFAC500CC2BD9 /* Attachment.swift */; };
C385D4D321AB58A4008874E5 /* Array+Safe.swift in Sources */ = {isa = PBXBuildFile; fileRef = C385D4D221AB58A4008874E5 /* Array+Safe.swift */; };
C386B08121AB4E0D00814255 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C386B08021AB4E0D00814255 /* main.swift */; };
C386B08521AB4E1D00814255 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = C359C7A221A2AFD00003408C /* Result.swift */; };
Expand All @@ -27,6 +35,14 @@

/* Begin PBXFileReference section */
C359C7A221A2AFD00003408C /* Result.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; };
C37D665921ADF98200CC2BD9 /* TestableSummary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestableSummary.swift; sourceTree = "<group>"; };
C37D665B21ADF99700CC2BD9 /* TestSummaryGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSummaryGroup.swift; sourceTree = "<group>"; };
C37D665D21ADF9CF00CC2BD9 /* TestSummarySubGroup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestSummarySubGroup.swift; sourceTree = "<group>"; };
C37D665F21ADF9FF00CC2BD9 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = "<group>"; };
C37D666121ADFA1E00CC2BD9 /* SubTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SubTest.swift; sourceTree = "<group>"; };
C37D666321ADFA8E00CC2BD9 /* FailureSummary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FailureSummary.swift; sourceTree = "<group>"; };
C37D666521ADFAA900CC2BD9 /* ActivitySummary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActivitySummary.swift; sourceTree = "<group>"; };
C37D666721ADFAC500CC2BD9 /* Attachment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Attachment.swift; sourceTree = "<group>"; };
C385D4D221AB58A4008874E5 /* Array+Safe.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+Safe.swift"; sourceTree = "<group>"; };
C386B07E21AB4E0C00814255 /* xcresultviewer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = xcresultviewer; sourceTree = BUILT_PRODUCTS_DIR; };
C386B08021AB4E0D00814255 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -60,14 +76,46 @@
name = Products;
sourceTree = "<group>";
};
C386B07F21AB4E0D00814255 /* xcresult */ = {
C37D666921ADFAF900CC2BD9 /* Result */ = {
isa = PBXGroup;
children = (
C386B08021AB4E0D00814255 /* main.swift */,
C359C7A221A2AFD00003408C /* Result.swift */,
C386B08721AB51B500814255 /* ResultHandler.swift */,
C37D665921ADF98200CC2BD9 /* TestableSummary.swift */,
C37D665B21ADF99700CC2BD9 /* TestSummaryGroup.swift */,
C37D665D21ADF9CF00CC2BD9 /* TestSummarySubGroup.swift */,
C37D665F21ADF9FF00CC2BD9 /* Test.swift */,
C37D666121ADFA1E00CC2BD9 /* SubTest.swift */,
C37D666321ADFA8E00CC2BD9 /* FailureSummary.swift */,
C37D666521ADFAA900CC2BD9 /* ActivitySummary.swift */,
C37D666721ADFAC500CC2BD9 /* Attachment.swift */,
);
path = Result;
sourceTree = "<group>";
};
C37D666A21ADFB1100CC2BD9 /* Helpers */ = {
isa = PBXGroup;
children = (
C385D4D221AB58A4008874E5 /* Array+Safe.swift */,
);
path = Helpers;
sourceTree = "<group>";
};
C37D666B21ADFB1C00CC2BD9 /* Model */ = {
isa = PBXGroup;
children = (
C37D666921ADFAF900CC2BD9 /* Result */,
C386B08721AB51B500814255 /* ResultHandler.swift */,
);
path = Model;
sourceTree = "<group>";
};
C386B07F21AB4E0D00814255 /* xcresult */ = {
isa = PBXGroup;
children = (
C386B08021AB4E0D00814255 /* main.swift */,
C37D666B21ADFB1C00CC2BD9 /* Model */,
C37D666A21ADFB1100CC2BD9 /* Helpers */,
);
path = xcresult;
sourceTree = "<group>";
};
Expand Down Expand Up @@ -131,8 +179,16 @@
files = (
C386B08521AB4E1D00814255 /* Result.swift in Sources */,
C385D4D321AB58A4008874E5 /* Array+Safe.swift in Sources */,
C37D666621ADFAA900CC2BD9 /* ActivitySummary.swift in Sources */,
C37D665E21ADF9CF00CC2BD9 /* TestSummarySubGroup.swift in Sources */,
C37D666821ADFAC500CC2BD9 /* Attachment.swift in Sources */,
C37D666421ADFA8E00CC2BD9 /* FailureSummary.swift in Sources */,
C37D665C21ADF99700CC2BD9 /* TestSummaryGroup.swift in Sources */,
C386B08121AB4E0D00814255 /* main.swift in Sources */,
C37D666021ADF9FF00CC2BD9 /* Test.swift in Sources */,
C386B08921AB526300814255 /* ResultHandler.swift in Sources */,
C37D665A21ADF98200CC2BD9 /* TestableSummary.swift in Sources */,
C37D666221ADFA1E00CC2BD9 /* SubTest.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,81 +1,13 @@
//
// Result.swift
// XCResultViewer
// ActivitySummary.swift
// xcresultviewer
//
// Created by Kane Cheshire on 19/11/2018.
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct Result: Codable {
let testableSummaries: [TestableSummary]

enum CodingKeys: String, CodingKey {
case testableSummaries = "TestableSummaries"
}
}

struct TestableSummary: Codable {
let testName: String
let testSummaryGroups: [TestSummaryGroup]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case testSummaryGroups = "Tests"
}
}

struct TestSummaryGroup: Codable {
let testName: String
let testSummarySubGroups: [TestSummarySubGroup]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case testSummarySubGroups = "Subtests"
}
}

struct TestSummarySubGroup: Codable {
let testName: String
let tests: [Test]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case tests = "Subtests"
}
}

struct Test: Codable {
let testName: String
let subtests: [SubTest]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case subtests = "Subtests"
}

var containsFailures: Bool {
return subtests.first(where: { $0.failureSummaries != nil }) != nil
}
}

struct SubTest: Codable {
let testName: String
let activitySummaries: [ActivitySummary]
let failureSummaries: [FailureSummary]?

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case activitySummaries = "ActivitySummaries"
case failureSummaries = "FailureSummaries"
}
}

struct FailureSummary: Codable {

}

struct ActivitySummary: Codable {

typealias ActivityLevel = (activity: ActivitySummary, level: Int)
Expand Down Expand Up @@ -122,11 +54,3 @@ struct ActivitySummary: Codable {
return Double(Int((finishTimeInterval - startTimeInterval) * 100)) / 100
}
}

struct Attachment: Codable {
let filename: String

enum CodingKeys: String, CodingKey {
case filename = "Filename"
}
}
17 changes: 17 additions & 0 deletions xcresult/Model/Result/Attachment.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//
// Attachment.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct Attachment: Codable {
let filename: String

enum CodingKeys: String, CodingKey {
case filename = "Filename"
}
}
13 changes: 13 additions & 0 deletions xcresult/Model/Result/FailureSummary.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//
// FailureSummary.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct FailureSummary: Codable {

}
18 changes: 18 additions & 0 deletions xcresult/Model/Result/Result.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// Result.swift
// XCResultViewer
//
// Created by Kane Cheshire on 19/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct Result: Codable {
let testableSummaries: [TestableSummary]

enum CodingKeys: String, CodingKey {
case testableSummaries = "TestableSummaries"
}
}

21 changes: 21 additions & 0 deletions xcresult/Model/Result/SubTest.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//
// SubTest.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct SubTest: Codable {
let testName: String
let activitySummaries: [ActivitySummary]
let failureSummaries: [FailureSummary]?

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case activitySummaries = "ActivitySummaries"
case failureSummaries = "FailureSummaries"
}
}
23 changes: 23 additions & 0 deletions xcresult/Model/Result/Test.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//
// Test.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct Test: Codable {
let testName: String
let subtests: [SubTest]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case subtests = "Subtests"
}

var containsFailures: Bool {
return subtests.first(where: { $0.failureSummaries != nil }) != nil
}
}
19 changes: 19 additions & 0 deletions xcresult/Model/Result/TestSummaryGroup.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// TestSummaryGroup.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct TestSummaryGroup: Codable {
let testName: String
let testSummarySubGroups: [TestSummarySubGroup]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case testSummarySubGroups = "Subtests"
}
}
19 changes: 19 additions & 0 deletions xcresult/Model/Result/TestSummarySubGroup.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// TestSummarySubGroup.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct TestSummarySubGroup: Codable {
let testName: String
let tests: [Test]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case tests = "Subtests"
}
}
19 changes: 19 additions & 0 deletions xcresult/Model/Result/TestableSummary.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
//
// TestableSummary.swift
// xcresultviewer
//
// Created by Kane Cheshire on 27/11/2018.
// Copyright © 2018 kane.codes. All rights reserved.
//

import Foundation

struct TestableSummary: Codable {
let testName: String
let testSummaryGroups: [TestSummaryGroup]

enum CodingKeys: String, CodingKey {
case testName = "TestName"
case testSummaryGroups = "Tests"
}
}

0 comments on commit c268a73

Please sign in to comment.