diff --git a/.travis.yml b/.travis.yml
index 0d8d2ff..0b3b49f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -53,4 +53,4 @@
   - set -e
   - bench --verbose run-tests
   - sleep 5
-  - bench --verbose run-tests --ui-tests
+  - bench --verbose run-ui-tests --app erpnext
diff --git a/erpnext/tests/ui/test_fixtures.js b/erpnext/tests/ui/data/test_fixtures.js
similarity index 100%
rename from erpnext/tests/ui/test_fixtures.js
rename to erpnext/tests/ui/data/test_fixtures.js
diff --git a/erpnext/tests/ui/selling/_test_lead.js b/erpnext/tests/ui/selling/_test_lead.js
new file mode 100644
index 0000000..2b895d9
--- /dev/null
+++ b/erpnext/tests/ui/selling/_test_lead.js
@@ -0,0 +1,18 @@
+QUnit.module("sales");
+
+QUnit.test("test: lead", function (assert) {
+	assert.expect(1);
+	let done = assert.async();
+	let random = frappe.utils.get_random(10);
+	frappe.run_serially([
+		() => frappe.tests.setup_doctype("Lead"),
+		() => frappe.set_route("List", "Lead"),
+		() => frappe.new_doc("Lead"),
+		() => cur_frm.set_value("lead_name", random),
+		() => cur_frm.save(),
+		() => {
+			assert.ok(cur_frm.doc.lead_name.includes(random));
+			return done();
+		}
+	]);
+});
diff --git a/erpnext/tests/ui/selling/_test_opportunity.js b/erpnext/tests/ui/selling/_test_opportunity.js
new file mode 100644
index 0000000..716a36e
--- /dev/null
+++ b/erpnext/tests/ui/selling/_test_opportunity.js
@@ -0,0 +1,19 @@
+QUnit.test("test: opportunity", function (assert) {
+	assert.expect(1);
+	let done = assert.async();
+	frappe.run_serially([
+		() => {
+			return frappe.tests.make("Opportunity", [{
+				enquiry_from: "Lead"
+			},
+			{
+				lead: "LEAD-00002"
+			}
+			]);
+		},
+		() => {
+			assert.ok(cur_frm.doc.lead === "LEAD-00002");
+			return done();
+		}
+	]);
+});
diff --git a/erpnext/tests/ui/test_sellling.js b/erpnext/tests/ui/selling/_test_quotation.js
similarity index 79%
rename from erpnext/tests/ui/test_sellling.js
rename to erpnext/tests/ui/selling/_test_quotation.js
index f676152..62dd05d 100644
--- a/erpnext/tests/ui/test_sellling.js
+++ b/erpnext/tests/ui/selling/_test_quotation.js
@@ -1,42 +1,3 @@
-QUnit.module("sales");
-
-QUnit.test("test: lead", function (assert) {
-	assert.expect(1);
-	let done = assert.async();
-	let random = frappe.utils.get_random(10);
-	frappe.run_serially([
-		() => frappe.tests.setup_doctype("Lead"),
-		() => frappe.set_route("List", "Lead"),
-		() => frappe.new_doc("Lead"),
-		() => cur_frm.set_value("lead_name", random),
-		() => cur_frm.save(),
-		() => {
-			assert.ok(cur_frm.doc.lead_name.includes(random));
-			return done();
-		}
-	]);
-});
-
-QUnit.test("test: opportunity", function (assert) {
-	assert.expect(1);
-	let done = assert.async();
-	frappe.run_serially([
-		() => {
-			return frappe.tests.make("Opportunity", [{
-				enquiry_from: "Lead"
-			},
-			{
-				lead: "LEAD-00002"
-			}
-			]);
-		},
-		() => {
-			assert.ok(cur_frm.doc.lead === "LEAD-00002");
-			return done();
-		}
-	]);
-});
-
 QUnit.test("test: quotation", function (assert) {
 	assert.expect(18);
 	let done = assert.async();
