Splits the test cases in ButtonsEndToEndTest into two separate files.

PiperOrigin-RevId: 236134750
diff --git a/src/TulsiEndToEndTests/ButtonsEndToEndTest.swift b/src/TulsiEndToEndTests/ButtonsEndToEndTest.swift
index e99fc0f..59be9e2 100644
--- a/src/TulsiEndToEndTests/ButtonsEndToEndTest.swift
+++ b/src/TulsiEndToEndTests/ButtonsEndToEndTest.swift
@@ -37,19 +37,6 @@
     testXcodeProject(xcodeProjectURL, scheme: "ButtonsTests")
   }
 
-  func testButtonsWithCanaryBazel() throws {
-    guard let canaryBazelURL = fakeBazelWorkspace.canaryBazelURL else {
-      XCTFail("Expected Bazel canary URL.")
-      return
-    }
-    XCTAssert(fileManager.fileExists(atPath: canaryBazelURL.path), "Bazel canary is missing.")
-
-    bazelURL = canaryBazelURL
-    let xcodeProjectURL = generateXcodeProject(tulsiProject: buttonsProjectPath,
-                                               config: "Buttons")
-    testXcodeProject(xcodeProjectURL, scheme: "ButtonsLogicTests")
-  }
-
   func testInvalidConfig() throws {
     let xcodeProjectURL = generateXcodeProject(tulsiProject: buttonsProjectPath,
                                                config: "InvalidConfig")
diff --git a/src/TulsiEndToEndTests/CanaryButtonsEndToEndTest.swift b/src/TulsiEndToEndTests/CanaryButtonsEndToEndTest.swift
new file mode 100644
index 0000000..99fe43d
--- /dev/null
+++ b/src/TulsiEndToEndTests/CanaryButtonsEndToEndTest.swift
@@ -0,0 +1,48 @@
+
+// Copyright 2016 The Tulsi Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import XCTest
+@testable import BazelIntegrationTestCase
+@testable import TulsiEndToEndTestBase
+
+
+// End to end test that generates the Buttons project and runs its unit tests. This variation of the
+// test uses the canary Bazel binary.
+class ButtonsEndToEndTest: TulsiEndToEndTest {
+  fileprivate let buttonsProjectPath = "third_party/tulsi/src/TulsiEndToEndTests/Resources/Buttons.tulsiproj"
+
+  override func setUp() {
+    super.setUp()
+
+    if (!copyDataToFakeWorkspace("third_party/tulsi/src/TulsiEndToEndTests/Resources")) {
+      XCTFail("Failed to copy Buttons files to fake execroot.")
+    }
+  }
+
+  func testButtonsWithCanaryBazel() throws {
+    guard let canaryBazelURL = fakeBazelWorkspace.canaryBazelURL else {
+      XCTFail("Expected Bazel canary URL.")
+      return
+    }
+    XCTAssert(fileManager.fileExists(atPath: canaryBazelURL.path), "Bazel canary is missing.")
+
+    bazelURL = canaryBazelURL
+    let xcodeProjectURL = generateXcodeProject(tulsiProject: buttonsProjectPath,
+                                               config: "Buttons")
+    XCTAssert(fileManager.fileExists(atPath: xcodeProjectURL.path), "Xcode project was not generated.")
+    testXcodeProject(xcodeProjectURL, scheme: "ButtonsLogicTests")
+  }
+}
+