// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you 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.
//

= NetBeans IDEでのTestNGの使用のビデオ
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDEでのTestNGの使用のビデオ - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDEでのTestNGの使用のビデオ

|===
|このスクリーンキャストでは、NetBeans IDEでTestNGテスト・クラスを作成およびデバッグする方法を示します。このスクリーンキャストで、単純なTestNGテストを作成し、テストで使用されるパラメータを指定するためのデータ・プロバイダをテスト・クラスに作成します。スクリーンキャストでは、テスト・クラスをデバッグする際の「式をステップ・オーバー」コマンドの使用についても示します。

作成者: Ken Ganfield 
時間: 5:20

link:http://bits.netbeans.org/media/testng-screencast.mp4[+フルサイズを視聴/ダウンロード+] (.mp4)([Ctrl]キーを押しながらクリックするとダウンロード、31MB)


link:/about/contact_form.html?to=3&subject=Feedback:%20Video%20of%20Using%20TestNG%20in%20NetBeans%20IDE[+このチュートリアルに関するご意見をお寄せください+]
 |  
|===


== 関連リンク

* link:junit-intro.html[+NetBeans IDEでのJUnitテストの記述+]
* link:debug-visual.html[+ビジュアル・デバッガの使用+]
* デモ: link:debug-multithreaded-screencast.html[+NetBeans IDEでのマルチスレッド・アプリケーションのデバッグ+]
* デモ: link:debug-stepinto-screencast.html[+NetBeansデバッガでの視覚的なステップ・イン・アクション+]
* デモ: link:debug-deadlock-screencast.html[+NetBeansデバッガを使用したデッドロックの検出+]
