mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
appTestNg
This commit is contained in:
1
e2e/appTestNg/.gitignore
vendored
1
e2e/appTestNg/.gitignore
vendored
@@ -6,6 +6,7 @@ platforms/
|
||||
# NativeScript Template
|
||||
*.js.map
|
||||
*.js
|
||||
!karma.conf.js
|
||||
!webpack.config.js
|
||||
|
||||
# Logs
|
||||
|
||||
112
e2e/appTestNg/karma.conf.js
Normal file
112
e2e/appTestNg/karma.conf.js
Normal file
@@ -0,0 +1,112 @@
|
||||
module.exports = function (config) {
|
||||
const options = {
|
||||
|
||||
// base path that will be used to resolve all patterns (eg. files, exclude)
|
||||
basePath: '',
|
||||
|
||||
|
||||
// frameworks to use
|
||||
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
|
||||
frameworks: ['mocha', 'chai'],
|
||||
|
||||
|
||||
// list of files / patterns to load in the browser
|
||||
files: [
|
||||
'src/tests/test-main.ts',
|
||||
'src/tests/**/*.ts'
|
||||
],
|
||||
|
||||
|
||||
// list of files to exclude
|
||||
exclude: [
|
||||
],
|
||||
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
|
||||
preprocessors: {
|
||||
},
|
||||
|
||||
|
||||
// test results reporter to use
|
||||
// possible values: 'dots', 'progress'
|
||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||
reporters: ['progress'],
|
||||
|
||||
|
||||
// web server port
|
||||
port: 9876,
|
||||
|
||||
|
||||
// enable / disable colors in the output (reporters and logs)
|
||||
colors: true,
|
||||
|
||||
|
||||
// level of logging
|
||||
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
|
||||
logLevel: config.LOG_INFO,
|
||||
|
||||
|
||||
// enable / disable watching file and executing tests whenever any file changes
|
||||
autoWatch: true,
|
||||
|
||||
|
||||
// start these browsers
|
||||
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
|
||||
browsers: [],
|
||||
|
||||
customLaunchers: {
|
||||
android: {
|
||||
base: 'NS',
|
||||
platform: 'android'
|
||||
},
|
||||
ios: {
|
||||
base: 'NS',
|
||||
platform: 'ios'
|
||||
},
|
||||
ios_simulator: {
|
||||
base: 'NS',
|
||||
platform: 'ios',
|
||||
arguments: ['--emulator']
|
||||
}
|
||||
},
|
||||
|
||||
// Continuous Integration mode
|
||||
// if true, Karma captures browsers, runs the tests and exits
|
||||
singleRun: false
|
||||
};
|
||||
|
||||
setWebpackPreprocessor(config, options);
|
||||
setWebpack(config, options);
|
||||
|
||||
config.set(options);
|
||||
}
|
||||
|
||||
function setWebpackPreprocessor(config, options) {
|
||||
if (config && config.bundle) {
|
||||
if (!options.preprocessors) {
|
||||
options.preprocessors = {};
|
||||
}
|
||||
|
||||
options.files.forEach(file => {
|
||||
if (!options.preprocessors[file]) {
|
||||
options.preprocessors[file] = [];
|
||||
}
|
||||
options.preprocessors[file].push('webpack');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function setWebpack(config, options) {
|
||||
if (config && config.bundle) {
|
||||
const env = {};
|
||||
env[config.platform] = true;
|
||||
env.sourceMap = config.debugBrk;
|
||||
env.appPath = config.appPath;
|
||||
options.webpack = require('./webpack.config')(env);
|
||||
delete options.webpack.entry;
|
||||
delete options.webpack.output.libraryTarget;
|
||||
const invalidPluginsForUnitTesting = ["GenerateBundleStarterPlugin", "GenerateNativeScriptEntryPointsPlugin"];
|
||||
options.webpack.plugins = options.webpack.plugins.filter(p => !invalidPluginsForUnitTesting.includes(p.constructor.name));
|
||||
}
|
||||
}
|
||||
@@ -1,9 +1,37 @@
|
||||
// A sample Mocha test
|
||||
describe('Array', function () {
|
||||
describe('#indexOf()', function () {
|
||||
it('should return -1 when the value is not present', function () {
|
||||
assert.equal(-1, [1, 2, 3].indexOf(5));
|
||||
assert.equal(-1, [1, 2, 3].indexOf(0));
|
||||
import { Component, ElementRef } from "@angular/core";
|
||||
import { nsTestBedAfterEach, nsTestBedBeforeEach, nsTestBedRender } from "nativescript-angular/testing";
|
||||
|
||||
@Component({
|
||||
template: `
|
||||
<StackLayout>
|
||||
<Label text="Label"></Label>
|
||||
</StackLayout>`
|
||||
})
|
||||
export class StackLayoutComponent {
|
||||
constructor(public elementRef: ElementRef) { }
|
||||
}
|
||||
|
||||
console.log("---> test example");
|
||||
|
||||
describe('Describe', function () {
|
||||
|
||||
console.log("---> test describe");
|
||||
|
||||
describe('StackLayoutComponent', function () {
|
||||
|
||||
this.beforeEach(nsTestBedBeforeEach(
|
||||
[StackLayoutComponent]
|
||||
))
|
||||
this.afterEach(nsTestBedAfterEach());
|
||||
|
||||
it('Render', function () {
|
||||
|
||||
return nsTestBedRender(StackLayoutComponent).then((fixture) => {
|
||||
const componentRef = fixture.componentRef;
|
||||
const componentRoot = componentRef.instance.elementRef.nativeElement;
|
||||
console.log("---> tests componentRef", componentRef);
|
||||
console.log("---> tests componentRoot", componentRoot);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
4
e2e/appTestNg/src/tests/test-main.ts
Normal file
4
e2e/appTestNg/src/tests/test-main.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import "nativescript-angular/zone-js/testing.mocha";
|
||||
import {nsTestBedInit} from "nativescript-angular/testing";
|
||||
console.log("---> test main");
|
||||
nsTestBedInit();
|
||||
Reference in New Issue
Block a user